`
flyfoxs
  • 浏览: 294510 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Scala浮点运算精度问题

 
阅读更多

在Spark开发的时候,直接使用java.math.BigDecimal进行浮点相乘的时候,依然有精度缺失.但是如果是纯JAVA就没有,在Scala中调用JAVA的BigDecimal就有这样的问题.

 

偶然之间发现Scala也实现了scala.math.BigDecimal. 换用SCALA自身的BigDecimal就没这样的问题了.

 

不知道深层次的原因,在这抛砖引玉,如果有人知道的,请赐教.

 

 

下面是实验代码.

 

package com.cisco.test
import java.math.BigDecimal

object TestSyntax {
  def main(args: Array[String]): Unit = {
    val local_price=new BigDecimal(0.015)
    val exchange_rate = new BigDecimal(2)
    //0.02999999999999999888977697537484345957636833190917968750
    println(local_price.multiply(exchange_rate))

    //0.030
    import scala.math.BigDecimal
    println(BigDecimal("0.015") *  BigDecimal("2"))

    println(BigDecimal("0.0") *  BigDecimal("0.751879699"))
  }
}

 

0
1
分享到:
评论
1 楼 regale 2016-10-16  
java用的double,scala用的String,要精确,请用String.

相关推荐

    pi_scala.zip_scala_scala精度

    利用无限精度的长整数, 计算 PI 值. 不是 java 程序, 是 scala 的实现. java 7.0 编译通过

    scala sdk scala-2.12.3

    scala-2.12.3 scala-2.12.3 scala-2.12.3 scala-2.12.3

    scala-sbt-scala编译工具

    scala 编译工具 sbt 安装包。 Little or no configuration required for simple projects Scala-based build definition that can use the full flexibility of Scala code Accurate incremental recompilation ...

    Scala编程实战.zip

    此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是一种思维方式的转变。从原有的面向对象编程(OO)到函数式编程(FP)的思想。本书面向实际的使用场景...

    Scala函数式编程

    在使用scala的过程中,碰到的问题主要体现在: 1 scala的很多语法糖不理解,不知道为啥要这么写,有种为了这么写的简洁而这么写的感觉 2 scala很多库在设计的时候,不理解原因,包括Option,Collection的很多看似...

    scala2.12.1Windows镜像包

    scala2.12.1Windows镜像包

    scala3 scala3 scala3 scala3 scala3

    scala3 scala3 scala3 scala3 scala3

    scala五本经典资料集合

    scala是一个经典的语言,Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。但是现在scala的相关学习资料不多,因此,本人总结了几篇写的较好的scala学习资料,包含<ScalaQuery_Commerzbank_2011><twitter-...

    scala 2.13.3 API 文档 Html离线版 scala-api.rar

    最新制作 scala 2.13.3 API 文档 Html离线版 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。

    scala编程中文pdf

    scala编程 33章 中文pdf Scala编程实战 目录 第1章字符串. 11 第2章数值39 第3章控制结构.60 第4章类和属性.103 第5章方法147 第6章对象170 第7章包和导入.190 第8章特质200 第9章函数式编程214 第10 章集合242 第...

    scala实战高清讲解

    scala编程进阶过程中不可或缺的书籍之一,详细介绍了scala语言的各种中高级语法,对于初学和高级开发人员有很大帮助

    最好的scala学习 课件

    最好的scala 学习课件,最好的scala 学习课件,学习spark必备

    eclipse插件 scala下载

    scala eclipse插件 拷贝到相应的目录即可使用,百度一大堆

    Scala实用指南

    本书是为想要快速学习或者正在学习 Scala 编程语言的 Java 开发者写的,循序渐进地介 绍了 Scala 编程语言的多个方面。 本书共分为 4 个部分:第一部分详细介绍 Scala 的一些基础知识,并和 Java 中的相关概 念进行...

    快学scala 完整

    快学scala 完整清晰版 大数据spark 主要的编程语言 快学scala 完整清晰版 大数据spark 主要的编程语言

    scala 3本书打包

    这个打包文件中包含了《SCALA程序设计-JAVA虚拟机多核编程实战》《Scala编程-中文-完整版》《Scala in Action》三本书,足以让你从scala入门到精通,让我们一起愉快的学习吧。spark,scala醉了醉了。哈哈

    scala + mybatis 数据库查询

    这是一个简单实用的scala集成mybatis数据库查询代码,简单明了

    scala SDK 2.10下载

    scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载scala SDK 2.10下载...

Global site tag (gtag.js) - Google Analytics