如何在java中从浮点数转换为大十进制?

2022-08-31 20:12:26

如何在java中从浮点数转换为大十进制?


答案 1
BigDecimal value = new BigDecimal(Float.toString(123.4f));

javadocs来看,字符串构造函数通常是将a转换为BigDecimal的首选方法,因为它不会受到构造函数不可预测性的影响。floatBigDecimal(double)

引用文档:

注意:对于其他浮点数和双精度值 NaN 和±Infinity,此构造函数与 Float.toString(float) 和 Double.toString(双精度)返回的值兼容。这通常是将浮点数或双精度转换为 BigDecimal 的首选方法,因为它不会受到 BigDecimal(双精度)构造函数的不可预测性的影响。


答案 2
float f = 45.6f;
BigDecimal bd = BigDecimal.valueOf(f);

引用文档:

注意:这通常是将双精度值(或浮点数)转换为 BigDecimal 的首选方法,因为返回的值等于从使用 Double.toString(double) 的结果构造 BigDecimal 所得到的值。

参考:BigDecimal (Java Platform SE 6)