精确地从字符串分配给Float

Dea*_*mer 1 java floating-point

我有以下代码,我想为float指定一个十进制值而不会丢失精度.

String s1= "525.880005";
Float f = new Float(s1);
System.out.println(f);
Run Code Online (Sandbox Code Playgroud)

产量: 5.88

预期产出: 525.880005

Jon*_*eet 5

Float只有7-8个有效数字的精度.示例中的"5"是第9位.

即使它具有足够的精度,我也不知道525.880005是否可以完全表示为二进制浮点数.大多数小数值不是:)

BigDecimal如果确切的十进制表示对您很重要,您应该使用.