akp*_*akp 40 java floating-point bigdecimal
如何在java中从float转换为bigDecimal?
dog*_*ane 47
BigDecimal value = new BigDecimal(Float.toString(123.4f));
Run Code Online (Sandbox Code Playgroud)
从javadocs开始,字符串构造函数通常是将a float转换为BigDecimal 的首选方法,因为它不会受到BigDecimal(double)构造函数的不可预测性的影响.
从文档引用:
注意:对于其他float和double NaN以及±Infinity的值,此构造函数与Float.toString(float)和Double.toString(double)返回的值兼容.这通常是将float或double转换为BigDecimal的首选方法,因为它不会受到BigDecimal(double)构造函数的不可预测性的影响.
Spa*_*key 20
float f = 45.6f;
BigDecimal bd = BigDecimal.valueOf(f);
Run Code Online (Sandbox Code Playgroud)
从文件引用:
注意:这通常是将double(或float)转换为BigDecimal的首选方法,因为返回的值等于从使用Double.toString(double)的结果构造BigDecimal所产生的值.
参考:BigDecimal(Java Platform SE 6)
对于小数点后3位数的精度:
BigDecimal value = new BigDecimal(f,
new MathContext(3, RoundingMode.HALF_EVEN));
Run Code Online (Sandbox Code Playgroud)