【问题标题】:Print INFINITY values to something else in JAVA将 INFINITY 值打印到 JAVA 中的其他内容
【发布时间】:2020-08-11 19:12:38
【问题描述】:

我在我的 java 编码中进行计算,我现在的问题是每当我点击 0 除以 0 时,它都会打印值 ?。 我的问题是,我可以将? 更改为打印0 或其他内容吗?那可能吗? 下面是我的代码,

DecimalFormat df = new DecimalFormat ("0.00");
if (rowset[9] == null) {rowset[9]="0";out.print("0.00");} 
else out.print(df.format(Double.valueOf(rowset[9])/Double.valueOf(rowset[10])));

【问题讨论】:

  • 您可能正在打印 NAN(“非数字”)。 0/0 不是 0,所以你不应该打印它。您还想打印什么? “南”呢?
  • @markspace 是的,我猜是“?”后面的 NAN目前正在打印,是的,我可以打印任何东西,除了我现在得到的?
  • Google 还建议 0/0 使用“未定义”。

标签: java


【解决方案1】:

可能类似于(未测试):

DecimalFormat df = new DecimalFormat ("0.00");
if (rowset[9] == null) {rowset[9]="0";out.print("0.00");} 
else {
  double result = rowset[9] / rowset[10];
  if( result != result )
     System.out.println( "undefined" );
  else
     out.print( df.format( result ) );
}

写完这篇文章后,我进行了搜索,发现了一种更好的方法来测试 NAN。我想我应该 RTFM。 How do you test to see if a double is equal to NaN?

【讨论】:

  • 谢谢伙计,这解决了我的问题!我想我也应该阅读手册。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2015-04-12
相关资源
最近更新 更多