Truncation Error when I try to create a Array of values
本问题已经有最佳答案,请猛点这里访问。
我希望创建一个间隔为0.2的值数组我用的代码是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
现在我得到的结果是:
1 2 3 4 5 6 7 8 9 10 | -0.8 -0.6 -0.40000004 -0.20000003 -2.9802322E-8 0.19999997 0.39999998 0.59999996 0.79999995 0.99999994 |
号
而我想要的输出是
1 | -0.8, -0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6, 0.8, 1.0 |
我该怎么办?
如果不需要浮点运算,则不要使用浮点类型。EDCOX1,0,EDCX1,1 }不是Java核心库中唯一的非完整EDCOX1×4的s。你所做的一切都需要
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import java.math.BigDecimal; public class TrialCode { public static void main(String[] args) { BigDecimal a = new BigDecimal("-1.0"); BigDecimal b = new BigDecimal("0.2"); for (int i = 0; i < 10; i++) { a = a.add(b); System.out.println(a); } } } |
浮点数只能达到一定的精度。对于
您可以舍入输出以获得所需的结果:
1 |
你可以用类似的东西
1 |
号