从java原语double中删除小数点后的分数?
在Java中,我有:
double x = 0.800000000000002
我想删除00000000000002表格x,我希望x值为0.8
我不想使用十进制格式,因为它将我的double转换为String
我想把x保留为双倍
你可以在下面搜索框中键入要查询的问题!
在Java中,我有:
double x = 0.800000000000002
我想删除00000000000002表格x,我希望x值为0.8
我不想使用十进制格式,因为它将我的double转换为String
我想把x保留为双倍
# 1 楼答案
你当然知道,但遗憾的是
0.8
不能准确地表示为双精度如果需要任意精度,那么使用
BigDecimal
之类的类。(但在我看来,由于Java缺乏对运算符重载的支持,类是一头猪)a
double
的一般规则是,它需要是一个适当大小的并矢有理数,才能完美地表示。例如,0.5、0.25和所有整数的53次方为2# 2 楼答案
避免字符串格式设置的解决方案如下:
double
值进行舍入,如Math.ceil()
、Math.floor()
或Math.rint()
李>例如,如果要将双精度四舍五入到小数点后两位:
该概念还可用于四舍五入和类似的四舍五入,并可用于故障计算研究
你可以把它放进图书馆,就像这样:
注意:记住双打是基于2的幂。并非所有的十进制值都可以用双精度表示,它们只是近似值
警告:我尚未测试上述代码
# 3 楼答案
根据你的便利程度使用。我想这会有帮助的