首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中将float转换为bigDecimal?

问如何在java中将float转换为bigDecimal?
EN

Stack Overflow用户
提问于 2010-09-30 16:38:32
回答 4查看 71.4K关注 0票数 49

如何在java中将float转换为bigDecimal?

EN

回答 4

Stack Overflow用户

发布于 2010-09-30 16:43:44

代码语言:javascript
复制
BigDecimal value = new BigDecimal(Float.toString(123.4f));

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

引用自文档:

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

票数 65
EN

Stack Overflow用户

发布于 2013-06-28 00:40:49

代码语言:javascript
复制
float f = 45.6f;
BigDecimal bd = BigDecimal.valueOf(f);

引用自文档:

注意:这通常是将双精度型(或浮点型)转换为双精度型的首选方法,因为返回的值与使用Double.toString( BigDecimal )构造BigDecimal时返回的值相等。

参考:BigDecimal (Java Platform SE 6)

票数 24
EN

Stack Overflow用户

发布于 2010-09-30 17:36:08

对于小数点后3位的精度:

代码语言:javascript
复制
BigDecimal value = new BigDecimal(f,
        new MathContext(3, RoundingMode.HALF_EVEN));
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3829029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档