1
A
回答
1
精密您可以使用此:
double x = 25.001;
int i = (int) x;
System.out.println(x);//Input
if (x - i <= 0.01) {
x = (int) x;
}
System.out.println(x);//Output
结果
Input Output
25.001 25.0
25.011 25.011
如果你想使用第二个变量可以使用:
int y = 0;
if (x - i <= 0.01) {
y = (int) x;
}
注意
但要注意,如果你输入的是不正确的,你总是会得到0,我喜欢的第一个解决方案是第二个是好的。
0
如果(X-的Integer.parseInt(X)> = 0.001) //转换这里
0
圆润的,你再不能在double
存储数量,作为double
是总是一个近似的实际值 - 一系列(负)2的幂。
所以你应该去做BigDecimal
尽可能多的人想做财务软件。
如果你不喜欢的东西:
double adjustWhenCloseToInt(double x) {
long n = Math.round(x); // Could overflow for large doubles
if (Math.abs(x - n) < 0.01) {
x = n;
}
return x;
}
简单
x = adjustWhenCloseToInt(x);
System.out.print(x);
是否仍打印0.00000001或此类。
的解决方案有
System.out.printf("%.2f", x);
或者更好的使用本地化的MessageFormat(千位分隔符和等)。由于浮点总是有舍入误差,我一般会去BigDecimal,尽管它是一个间接使用的类。小心使用String构造:
new BigDecimal("3.99");
当他们再能保持2
相关问题
- 1. Java可能的有损转换双重转换为Int
- 2. 双转换为int,舍去
- 3. 双打转换为int
- 4. 转换双为int在C#
- 5. 将int转换为双Python
- 6. 转换双为int在C + +
- 7. 双转换为int WPF C#
- 8. 转换双转换成int
- 9. java转换为int
- 10. 双int转换messup
- 11. 转换为int的Java
- 12. 将double转换为int(java)
- 13. Java将String []转换为int []
- 14. java将int转换为short
- 15. 转换双为int误差(1个关)
- 16. 无法从双强制转换为int
- 17. 将双重对象转换为int
- 18. PHP转换为int返回双重
- 19. C++ unsigned int双重转换
- 20. 指定的转换无效(双精度转换为int)
- 21. 无法从int []转换为双重错误java
- 22. Java Puzzler - 将一个双精度型转换为int
- 23. 从'双'转换为'int'需要缩小转换
- 24. Java int的不能转换为boolean
- 25. Java enum getter转换为int的错误
- 26. 将Regular Int转换为最终的Java
- 27. 的Java:问题转换字符为int
- 28. 将子串转换为Java中的Int
- 29. 将int转换为java中的字节
- 30. 铸造双为int像java
好的,什么阻止你这么做?是否有任何*特定*问题? – Pshemo