发布网友 发布时间:2023-09-20 09:28
共2个回答
热心网友 时间:2024-08-14 22:26
因为计算机是二进制的,所以在表示小数时是0.5,0.25,0.125这种样式的,而1.2和2.4是不可能用这种方式表示出来的,所以在计算机表示他们时,你可以理解为他们变成了“无限循环小数”,而java当中不管是double还是float,很明显都有固定位数的,碰到这种“无限“位的只能截取在他们范围之内的位数,也就是说截完之后的数字只是接近1.2或者2.4而不等于他们,你这样加起来也只是接近3.6而不等于3.6,至于到底用3.6还是3.59999表示,取决于在两者之间更接近谁。热心网友 时间:2024-08-14 22:26
java中double和float都是不准确的只有bigdecimal才是精确的追问改了还是不行。。。追答Math.round()一下