我正在跟踪java- 1-将浮点乘以10,直到其小数部分变为零。 2-用
测试了这个number%1 == 0 // fails here
Prob我面对 - 例如输入值是.12 iter-1 .12 * 10 = 1.199999 iter-2 .12 * 100 = 12.010 ** //期待分数为零
Expected-
iter-1 .12*10 = 1.2
iter-2 .12*100 = 12.0
有什么方法可以达到预期的效果。
答案 0 :(得分:0)
您可以使用Math.IEEEremainder(value, 1) == 0
。但请确保您需要精确的位识别检查,而不是近似检查(仅限10位左右),以避免报告非圆形数字,例如1.00000000000001
答案 1 :(得分:-2)
怎么样
Double number = ...; // Some number
boolean hasFractionalPartInIt = number.compareTo((double)number.intValue()) != 0;