首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串到BigDecimal,哪个是好的方法?

字符串到BigDecimal,哪个是好的方法?
EN

Stack Overflow用户
提问于 2015-11-09 10:39:25
回答 5查看 103关注 0票数 2

我正在尝试将字符串转换为BigDecimal。请告诉我下面哪个是好办法。

代码语言:javascript
复制
BigDecimal selAmount = BigDecimal.ZERO;
String amount = "1234";
selAmount = BigDecimal.valueOf(Double.parseDouble(amount));

代码语言:javascript
复制
selAmount = new BigDecimal(amount);
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-11-09 10:42:54

不要使用第一种方法。如果字符串表示的值不能精确地由double表示,则会出现准确性问题。

您也不能使用第二种方法,因为不存在接受字符串的BigDecimal.valueOf重载。

因此,备选案文3:

代码语言:javascript
复制
BigDecimal selAmount = new BigDecimal(amount);
票数 1
EN

Stack Overflow用户

发布于 2015-11-09 10:42:29

您可以直接将字符串传递给BigDecimal的构造函数。

票数 0
EN

Stack Overflow用户

发布于 2015-11-09 10:43:29

BigDecimal.valueOf(double));隐式地调用return new BigDecimal(Double.toString(val));。所以,你的第二个案例会更有效率,就像Thilo说的,更正确。

代码:

代码语言:javascript
复制
 */
public static BigDecimal valueOf(double val) {
    // Reminder: a zero double returns '0.0', so we cannot fastpath
    // to use the constant ZERO.  This might be important enough to
    // justify a factory approach, a cache, or a few private
    // constants, later.
    return new BigDecimal(Double.toString(val));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33607324

复制
相关文章

相似问题

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