如何找到可以存储在float中的最大两位小数精度值?
根据我的理解,在32位浮点数中,我们有24(23 + 1)用于存储除指数之外的数字。 2 ^ 24是我们可以存储的最大值吗?
提前致谢。 Sriraman
答案 0 :(得分:2)
2 ^ 24是您可以准确存储的最大整数。您可以存储的最大两位小数值,而不会损失精度。 2 ^一百分之二十四。
注意:甚至0.1& 0.01无法准确存储,但通过舍入,您可以无错误地获得此值。因此,从字面上理解问题,最大值为0.00。 ;)
具有两位精度的最大值接近Float.MAX_VALUE,但我不认为这就是你的意思。
答案 1 :(得分:0)
有关IEEE 754单精度二进制浮点格式的信息,请参见wikipedia
我认为找不到这样的号码是不可能的。 您在谈论基数为10的两个十进制数字的数字,但是您希望将此数字存储为二进制值。
虽然您完全能够在32位浮点数中存储精确值1.00,但您将无法存储0.99。
答案 2 :(得分:0)
您无法在浮点值中指定精度。如果你将自己限制在2个小数位,那么你不会为其他东西获得更多的空间。
答案 3 :(得分:0)
如果您只是想在点之后存储正好两位小数的数字,请将该数字存储100倍作为整数(或长,取决于数字的大小),并在格式上添加点(或逗号) (在解析时删除)。
这更容易控制。