我在尝试使用BigDecimal持久保存对象时看到错误。
com.microsoft.sqlserver.jdbc.SQLServerException:将数据类型nvarchar转换为十进制时出错
要避免此错误,我必须降低BigDecimal的准确性。或者只使用JTDS驱动程序。
也许,我不明白什么?此错误持续多年。是否有一些属性可以设置,同时使用mssql-jdbc?
答案 0 :(得分:1)
http://dertompson.com/2008/01/03/bigdecimal-and-jdbc-since-java-5-0-2/
显然,转换过程会将double转换为一个字符串,该字符串可能包含十进制数后面的过多值。然后将其转换为BigDecimal。此转换过程是错误的来源。
我通过使用decimalFormat()来保留我想要的有效位数并在新的BigDecimal()转换中使用该字符串来解决这个问题。
答案 1 :(得分:0)
请按照以下链接 - 需要使用比例功能,以便您可以舍入小数