博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql bigdecimal 默认值_BigDecimal与double
阅读量:6470 次
发布时间:2019-06-23

本文共 503 字,大约阅读时间需要 1 分钟。

前几天,系统处理double类型的加减法,出现问题。

请看题:

430c7f5a126b02ba041d0b85fe0423ce.png

示例1

问, 结果是多少? 0.01?

No! 结果是0.009999999999999998!

为什么会这样呢? 因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定. 常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是!double相减会转换成二进制,因double有效位数为 16位这就会出现存储小数位数不够的情况,这种情况下就会出现误差,解决方法就是使用BigDecimal,它的有效长度足够长可存储 小数位数因此可代替double来进行加减乘除, 金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math.BigDecimal.

加减乘除

两个BigDecimal值应该怎样进行加减乘除呢? +, -, *, / 这样写吗? 不!

请看示例:

5f58a0d4dee583b13912ed24a717acad.png

示例2

加减乘除使用了英文的加减乘除, 即add, substract, multiply和divide

大小比较

两个BigDe

转载地址:http://kpdko.baihongyu.com/

你可能感兴趣的文章
网页图表Highcharts实践教程之图表区
查看>>
告诉自己,坚持学习--自己的新博客
查看>>
redis慢日志查询
查看>>
int表示范围大小
查看>>
玩转百度即用API(4)——手机号码归属地查询
查看>>
【Android学习总结】之Activity:初识Activity及使用
查看>>
HTTPD+PHP+MySQL+NFS
查看>>
数据库备份与恢复
查看>>
邮件数据恢复解决方法
查看>>
UIImage拉伸图片的效果实现
查看>>
Bash配置文件详解
查看>>
【Python之旅】第二篇(七):集合
查看>>
dom4j
查看>>
alisql ubuntu 安装
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
系统架构-设计模式及架构模式基础知识
查看>>
kylin聚合组
查看>>
Format类 格式化和几种字符串翻转方法
查看>>
烦恼的操作系统
查看>>