首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Joda-Money一起使用scala.BigDecimal

与Joda-Money一起使用scala.BigDecimal
EN

Stack Overflow用户
提问于 2014-02-28 09:18:36
回答 1查看 799关注 0票数 1

我试图用Joda-Money来使用scala BigDecimal。将scala BigDecimal传递给Money.of()不起作用,因为它需要一个BigDecimal。

代码语言:javascript
复制
[error] C:\test.scala:82: overloaded method value of with alternatives:
[error]   (x$1: org.joda.money.BigMoneyProvider,x$2: java.math.RoundingMode)org.joda.money.Money <and>
[error]   (x$1: org.joda.money.CurrencyUnit,x$2: Double)org.joda.money.Money <and>
[error]   (x$1: org.joda.money.CurrencyUnit,x$2: java.math.BigDecimal)org.joda.money.Money
[error]  cannot be applied to (org.joda.money.CurrencyUnit, scala.math.BigDecimal)
[error]     Money.of(gbp, a)
[error]           ^

我可以使用.underlying,它可以工作:

代码语言:javascript
复制
val gbp = CurrencyUnit.of("GBP")
val  a = BigDecimal("2.2")
Money.of(gbp, a.underlying)

但是有没有更好的方法,比如已经存在于某个地方的隐式转换?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-28 09:55:12

似乎在scala.math.BigDecimal中,只有

代码语言:javascript
复制
implicit def javaBigDecimal2bigDecimal(x: java.math.BigDecimal): BigDecimal = 
    BigDecimal(x)

所以你必须自己定义它:

代码语言:javascript
复制
implicit def scalaBigDecimal2bigDecimal(x: BigDecimal): java.math.BigDecimal = 
    x.underlying

不过,我不知道是否有任何库已经提供了这种转换。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22090895

复制
相关文章

相似问题

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