我有以下代码,有时返回为真,有时不返回。
知道什么可能导致不同的结果吗?
0.00 字符串来自 JSON 对象。
(代码简化)
if(new Float("0.00")>0){
// do something
}
编辑:
我所拥有的是一些浮点数,我想确定它是零、小于零还是大于零。这些值可能是 0.00、0.001 或 -0.001。我如何确定它们是正数、负数还是零?
编辑:
也许我应该澄清我是如何获得这些价值观的。我可能完全是导致问题的其他原因,因为我阅读了 BigDecimal 并尝试使用它无济于事。
使用以下代码从 JSON 提要(格式为 LT:0.000)中提取值:
price = new BigDecimal(stocksJSONArray.getJSONObject(i).getString("LT"));
然后为了测试价格是大于还是小于零,我使用了以下条件语句:
if(price.compareTo(BigDecimal.ZERO)==1){
// greater than zero
}
else if(price.compareTo(BigDecimal.ZERO)==-1){
// less than zero
}
此代码循环用于从 JSON 提要中读取的许多值。从结果来看,一些price
为零的被处理为大于零,一些被处理为小于零。我怀疑是其他原因导致了这里的问题?
我还做了一个测试,看看问题是否出在数据的准确性上。所以我这样做了:
DecimalFormat frmt = new DecimalFormat("0.000000000000000000000000");
String formatted = frmt.format(stock.change);
对于被识别为正数和负数的零,它的跟踪值仍然是0.000000000000000000000000
,不是0.000000000000000000000001
或类似的东西。