在 Java 中将 int 转换为浮点数而不进行舍入



I have int value40959999.如何在不四舍五入的情况下将其转换为浮点数409599,99

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

使用双精度而不是浮点数

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

相关内容

  • 没有找到相关文章

最新更新