项目里很多使用涉及金额钱的输入框,oralce数据库一般设置成number(18,2)就能满足大多数项目存储需求
但是后台使用Float类型接收的时候,会出现精度错误,例如前台录入的是29999999,后台用Float接收后,自动+1,转成30000000,而且Float自动转换使用了科学计数法,导致精度错误了,正常要求个位数输入多少就传递多少才对,小数点一般四舍五入没问题。
解决办法,后台接收的时候使用BigDecimal类型接收,保存的时候直接保存就能正常入库,精度不丢失,涉及到计算累加时候也使用BigDecimal.add方法
用Float类型接收前台传递String类型精度异常
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
设计模式之事务处理
iteye_5568
2020-07-07 11:21:36
Java 细节汇总(4)
谈谈1974
2020-07-05 18:44:23
Java FutureTask 源码解析
haibing_blog
2020-07-05 10:17:39
Arrays实用功能(上)
haibing_blog
2020-07-05 10:17:34
Java 获取和替换字符串中 {} 包含的内容
李晋江
2020-07-05 04:28:14
使用 IDEA 编写第一个 Java 程序
李晋江
2020-07-05 04:28:14
使用JDK API实现动态代理和源码分析
龙龙马
2020-07-04 20:42:02
面试官问,为啥Mybatis的接口不需要实现类
龙龙马
2020-07-04 20:42:02
面试官问,Mybatis插件增强逻辑的顺序怎么控制
龙龙马
2020-07-04 20:42:02
Mybatis 插件和动态代理
龙龙马
2020-07-04 20:42:02
第三章 Servlet 生命周期
lee_ccr
2020-07-04 19:21:33
第一章 Servlet 简介
lee_ccr
2020-07-04 19:21:33
第二章 Servlet 环境设置
lee_ccr
2020-07-04 19:21:33
Java编程拾遗『JVM垃圾回收』
卓立0
2020-07-04 14:10:57