一、double类型精度缺失处理

由于计算小数,需要向下截取小数位,保留两位小数,但是用了ROUND_DOWN截取却出现了问题

public class Test {public static void main(String args[]){//0.03,0,06,0.09double a = 0.09;double b = new BigDecimal(a).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();System.out.println(b);}
}

0.03->0.02,0.06->0.05, 0.09->0.08,但是如果是三位小数截取不会有问题,大于1,截取也不会有问题,只有2位小数截取两位有问题,使用BigDecimal.ROUND_HALF_DOWN可以避免这种情况。

这个原因在于使用了double类型的参数来进行转换,将double转换成String类型的,就可以转化正常了。感谢博友的提醒,csdn真是个好地方。

二、对于非金融领域货币的处理

在非金融类项目中对货币处理时, 一般取2位精度, 通常的设计方法是在运算过程中扩大100倍, 在需要展示时再缩小100倍, 减少精度带来的误差。所以此时价格可以设置为int型,不需要设置double型的。

BigDecimal的ROUND_DOWN()中的坑相关推荐

  1. BigDecimal你遇见过哪些坑?

    在我们日常工作中数值计算是不可避免的,特别是电商类系统中,这个问题一般情况下我们都是特别注意的,但是一不注意就会出大问题,跟钱有关的事情没小事.这不新来的大兄弟就一个不注意,在这个小阴沟里翻车了,闹笑 ...

  2. JDK中的坑:JDK中这些方法的bug你不要踩

    点击关注公众号,Java干货及时送达 图片来源:白夜追凶 前言: jdk作为我们每天必备的调用类库,里面大量提供了基础类供我们使用.可以说离开jdk,我们的java代码寸步难行,jdk带给我们的便利可 ...

  3. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  4. C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题

    C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题 参考文章: (1)C# System.Timers.Timer中的坑,程序异常退出后timer依然运行问题 ( ...

  5. 决策树python建模中的坑 :ValueError: Expected 2D array, got 1D array instead:

    决策树python建模中的坑 代码 #coding=utf-8 from sklearn.feature_extraction import DictVectorizerimport csvfrom ...

  6. 小心 Enum Parse 中的坑

    小心 Enum Parse 中的坑 Intro 最近使用枚举的时候,踩了一个小坑,分享一下,主要是枚举从 int 值转成枚举时可能会遇到 Sample 来看下面的示例: 首先定义一个枚举: publi ...

  7. mysql 主从 通俗易懂_MySQL 主从同步架构中你不知道的“坑”(完结篇)

    MySQL 主从同步架构中你不知道的"坑"(完结篇) 收录于话题 #MySQL从入门到放弃 26个 点击上方蓝字,关注我们哟! 前言导读 之前写出一篇文章也是关于这个主从同步架构的 ...

  8. golang中container/list包中的坑

    转载地址:golang中container/list包中的坑 - Go语言中文网 - Golang中文社区 golang中list包用法可以参看golang中container/list包用法_che ...

  9. 问题 | golang编程中的坑

    文章目录 背景 坑一:遍历遇上指针 例子1: 例子2: 为什么? 解决方案 坑二:切片和闭包 例子 为什么 解决方案 坑三:切片的append 例子 为什么 解决方案 坑四:time包自定义格式的坑 ...

最新文章

  1. java中名词概念的理解
  2. php全局变量的关键字,PHP变量作用域(全局变量局部变量)globalstatic关键字用法实例分析...
  3. 纵向导航css设置主要属性,CSS 导航
  4. LeetCode题组:第121题-买卖股票的最佳时机
  5. linux安装neo4j及远程访问
  6. html网页访问计数器,HTML添加网站计数器(Cookie)
  7. JS-获取当前日期-月的天数
  8. 使用事件和消息队列实现分布式事务
  9. ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
  10. 计算机辅助制造总结,北方工业大学 《计算机辅助制造》CAM总结[精品].ppt
  11. js中的date操作
  12. 罗永浩:我今年四十八岁,还可以承受无数次的失败;iOS14 或将推出系统级「小程序」功能;​ PyCharm新版发布| 极客头条...
  13. C/C++ 常见误区
  14. 按关键字搜索自己的CSDN博客
  15. CCIE试验备考之交换VLAN间路由
  16. Deepin系统初体验指南:从安装到开发环境配置
  17. 二叉树线索化示意图_二叉树线索化
  18. BT结束,高宽带有何用?
  19. AI人工智能代替人工翻译后,我们还需要学习英语吗?
  20. 视频监控系统流媒体服务器的用处,监控视频流媒体服务器作用

热门文章

  1. 【数学解析几何】C_几种常见的函数曲线——(典型曲线图)
  2. 关于部署OOS时出现的证书问题解决
  3. saas系统项目总结
  4. Exploring Phrase Grounding without Training: Contextualisation and Extension to Text-Based Image Ret
  5. 小程序推广换量经验分享
  6. 像素焦距与毫米焦距转换
  7. Java杂项基础知识点总结
  8. PHP中文转换为数组,PHP文本处理之中文汉字字符串转换为数组
  9. 牛客寒假集训营 牛牛战队的比赛地
  10. ps中怎么导出tif_PS中图像常用的2种存储格式——TIFF/JPEG