加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

什么是在Scala中删除BigDecimal的尾随零的正确方法?

发布时间:2020-12-16 09:05:42 所属栏目:安全 来源:网络整理
导读:scala.math.BigDecimal.toString可以返回类似“0.888200000”的内容.如果我想要“0.8882”而我可以做的最好的事情是什么? java.math.BigDecimal有这个的stripTrailingZeros()方法,但 Scala的BigDecimal似乎缺乏它.使用scala.math.BigDecimal.underlying来获
scala.math.BigDecimal.toString可以返回类似“0.888200000”的内容.如果我想要“0.8882”而我可以做的最好的事情是什么? java.math.BigDecimal有这个的stripTrailingZeros()方法,但 Scala的BigDecimal似乎缺乏它.使用scala.math.BigDecimal.underlying来获取底层的java.math.BigDecimal是最好的方法还是Scala中有更好的方法?

解决方法

如果要访问所有 Java方法但不想键入底层,那么隐式def怎么样?

val b = math.BigDecimal("0.888200000")
implicit def bigDecimalToJavaBigDecimal(b: math.BigDecimal) = b.underlying

scala> b.stripTrailingZeros
res1: java.math.BigDecimal = 0.8882

你得到了一个Java BigDecimal,但是没关系,因为你导入的Math.BigDecimal(称为javaBigDecimal2bigDecimal)已经隐藏了对Scala版本的def.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读