繁体   English   中英

将int转换为Java中的float而不四舍五入

[英]Convert int to float in Java without rounding

我的int值为40959999 如何将其转换为不四舍五入为409599,99 float?

float f = 40959999/100.00f将是409600.0

使用double而不是float

double d = 40959999/100.00f;

DoubleFloat具有固有的不精确性,这是无法避免的(有关为何原因的更多信息,请参见此处 )。 在这种情况下,使用双精度数字可能无法四舍五入,但并非全部。 如果您使用的东西永远都不能四舍五入(例如价格),则应该改用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM