价格精度问题
来源:互联网 发布:app代驾软件 编辑:程序博客网 时间:2024/04/27 21:07
错误案例
(int)(Float.parseFloat(price)*100) 这样处理,对于8.90这样的价格会转化成889,实际应该是890才对
(int)(Double.parseDouble(price)*100) ,对于8.90转化的结果是对的,但是对于 1.15会把它转化成114,又出问题了
错误分析
float和double都采用了micro-optimization方式提升计算性能,所以都有计算偏差。可以使用BigDecimal来避免精度丢失。
正确用法
可见Double,Float都不能很好的处理精度问题,终极处理方法是使用BigDecimal,这里我们的框架对它有封装,那就是Money类,很简单:
new Money(price).getCent();
- 价格精度问题
- 关于微信支付 支付宝支付价格精度问题
- 关于计算订单价格,转换后差一分钱的解决方法(浮点数精度问题)
- 【精度问题】
- 精度问题
- 精度问题
- 精度问题
- 精度问题
- 精度问题
- 价格折扣问题
- 价格统计的问题
- DecimalFormat精度解决,商业运算精度问题
- 单精度与双精度问题
- DecimalFormat精度解决,商业运算精度问题
- 关于double精度问题
- double,float精度问题
- Exponentiation-计算精度问题
- JavaScript精度问题
- 循环体内包含了大量没有必要在循环中处理的语句或获取数据库连接或进行不必要的try-catch操作
- Understanding Git Conceptually 从概念上理解Git【2】
- 在slickedit环境下进行DDK快速开发
- mdaemon 允许新用户注册
- RGB ,YUV, YCbCr的定义
- 价格精度问题
- 浏览Windows Phone Marketplace应用又一招
- Io流关闭问题
- 经典
- 学习思维导图
- 使用JDK的新特性遍历list中所有数据
- 字符串和多个char类型的字符相加比较问题
- oracle的基本理解概念。
- ★★★☆ Visual Studio 2008 每日小窍门 【持续发布ing~】 Tips:051