支付交易中遇到浮点数精度的问题
来源:互联网 发布:手机版商城源码 编辑:程序博客网 时间:2024/06/05 15:22
1,案例
支付平台的单位是分,而业务系统的单位是元,所以传到支付系统时要乘以100
@Test public void test_divide2() { String payAmountStr="1011"; float f=Float.parseFloat(payAmountStr); float result=f/100f; System.out.println(String.valueOf(result*100)); }
运行结果:1010.99994
运行结果不精确!!!
但是预期结果是:1011
2,解决方法:使用BigDecimal
@Test public void test_divide() { String payAmountStr="1011"; BigDecimal chanpayAcount=new BigDecimal(payAmountStr); BigDecimal bssAcount= chanpayAcount.divide(new BigDecimal(100)); System.out.println("使用BigDecimal"); System.out.println(String.valueOf(bssAcount.multiply(new BigDecimal(100)))); }
运行结果:
使用BigDecimal
1011.00
0 0
- 支付交易中遇到浮点数精度的问题
- JAVA中浮点数的精度问题
- Java中浮点数的精度问题
- Java中浮点数的精度问题
- JS中浮点数精度的问题
- js中浮点数的精度问题
- JAVA中浮点数的精度问题
- js浮点数精度问题(js计算中遇到的坑)
- js浮点数精度问题(js计算中遇到的坑)
- 浮点数的精度问题
- java中floatdouble浮点数的计算失精度问题
- Java中解决浮点数精度的问题
- 关于编程中浮点数精度的问题
- Java中解决浮点数精度的问题
- Java中解决浮点数精度的问题
- ACM中浮点数精度问题
- Java中浮点数相见,精度问题
- 浮点数精度问题
- 8-MATLAB绘图
- LoadRunner脚本创建、录制和添加事务
- What is the modified poplar formwork plywood
- mvn基础之常用的构建命令以及自动创建目录骨架
- 《编程之美》1.6 饮料供货——贪心解法证明
- 支付交易中遇到浮点数精度的问题
- CVI关于INI文件的操作
- 【SpringMVC整合MyBatis】springmvc拦截器-定义和配置
- 解决 iOS8 定位授权的问题
- CWnd与HWND的区别 (2
- Poj 4227 反正切函数的应用
- 9.10扩展性与存储限制(二)——给定一个输入文件,包含40亿个非负整数。产生一个不在该文件中的整数。内存限制:1GB
- Android 四种点击监听方式
- POJ 2406 Power Strings kmp