Mybatis Batch insert Java BigDecimal to SQL Server decimal(18,2) 无法正常工作
Mybatis Batch insert Java BigDecimal to SQL Server decimal(18,2) not working correctly
看到每个建议我们都使用 BigDecimal
来避免精度问题。
我在 java 中使用 BigDecimal
和 SQL 服务器列 Decimal(18,2)
。
当我用 new BigDecimal("37.99")
插入值时,结果数据库中的值是 38。
我也试过使用 new BigDecimal(str).setScale(2, RoundingMode.UNNECESSARY)
,但仍然在数据库中得到 38。
我该如何避免这个问题?
我想我找到了解决方案
我正在使用 myBatis 批量插入来插入值,
还有部分值为0,我没有在程序中设置比例
结果是用最小规模插入所有记录的批次
在我用
设置每个 BigDecimal 值之后
new BigDecimal("37.99").setScale(2)
数据库值正确。
希望任何人都能得到这个答案的帮助。
看到每个建议我们都使用 BigDecimal
来避免精度问题。
我在 java 中使用 BigDecimal
和 SQL 服务器列 Decimal(18,2)
。
当我用 new BigDecimal("37.99")
插入值时,结果数据库中的值是 38。
我也试过使用 new BigDecimal(str).setScale(2, RoundingMode.UNNECESSARY)
,但仍然在数据库中得到 38。
我该如何避免这个问题?
我想我找到了解决方案
我正在使用 myBatis 批量插入来插入值,
还有部分值为0,我没有在程序中设置比例
结果是用最小规模插入所有记录的批次
在我用
设置每个 BigDecimal 值之后new BigDecimal("37.99").setScale(2)
数据库值正确。
希望任何人都能得到这个答案的帮助。