强制转换为BigDecimal

Sur*_*nti 34 java

我怎样才能投LongBigDecimal

Sil*_*rom 52

你必须创建一个新的BigDecimal.

BigDecimal d = new BigDecimal(long);
Run Code Online (Sandbox Code Playgroud)


Gar*_*vis 21

为了完整起见,您可以使用:

// valueOf will return cached instances for values zero through to ten
BigDecimal d = BigDecimal.valueOf(yourLong);
Run Code Online (Sandbox Code Playgroud)

0 - 10是java 6实现的,不确定以前的JDK

  • 按照JavaDocs的建议,valueOf是首选的:“此“静态工厂方法”优先于(长)构造函数提供,因为它允许重用经常使用的BigDecimal值。” (2认同)

Fic*_*ico 15

你不应该使用BigDecimal d = new BigDecimal(long); !

BigDecimal中longs的实现并不精确.对于财务应用,这很关键!

但是String参数的实现更好!所以使用类似的东西:

new BigDecimal(yourLong.toString());
Run Code Online (Sandbox Code Playgroud)

http://www.parleys.com/上有一个关于此的讨论.