在Java中不舍入地将int转换为float

在Java中不舍入地将int转换为float,java,rounding,Java,Rounding,我有int值40959999。如何将其转换为浮点而不舍入为409599,99 float f=40959999/100.00f的结果将是409600.0使用double代替float double d = 40959999/100.00f; Double和Float具有无法避免的内在不精确性(有关原因的更多信息)。在这种情况下,使用double可能不会使您的数字四舍五入,但并非全部。如果您处理的是不应该四舍五入的内容(如价格),则应使用BigDecimal。实现您的int值,如图所示。不要使用

我有int值
40959999
。如何将其转换为浮点而不舍入为
409599,99


float f=40959999/100.00f的结果将是
409600.0

使用double代替float

double d = 40959999/100.00f;

Double
Float
具有无法避免的内在不精确性(有关原因的更多信息)。在这种情况下,使用double可能不会使您的数字四舍五入,但并非全部。如果您处理的是不应该四舍五入的内容(如价格),则应使用
BigDecimal

实现您的
int
值,如图所示。不要使用
float
而是使用
BigDecimal

BigInteger b1 = BigInteger.valueOf(40959999); 
int scale = 2;
BigDecimal d1 = new BigDecimal(b1, scale); 
System.out.println(d1);

run:
409599.99

使用double更精确这能回答你的问题吗?