java程序由mysql转到sqlserver时在浮点数处理上遇到的错误

来源:互联网 发布:windows 漏洞扫描 编辑:程序博客网 时间:2024/04/29 16:52

将double类型的数据直接转换成bigdecimal时,如下:

meterReadingT.setKw(new BigDecimal(kw));
meterReadingT.setAKw(new BigDecimal(kwA));

meterReadingT.setBKw(new BigDecimal(kwB));

meterReadingT.setCKw(new BigDecimal(kwC));

在mysql中是没有错误的,但是在sqlserver里面是有错误的,会报不能将nvarchar类型的转换成decimal,

在mysql中相应字段的类型是decimal,在sqlserver中的相应类型是numeric,最后在网上找到办法,应该限制一下小数点的位数如下


DecimalFormat decimalFormat =new DecimalFormat("#.00");

meterReadingT.setKw(new BigDecimal(decimalFormat.format(kw)));
meterReadingT.setAKw(new BigDecimal(decimalFormat.format(kwA)));
meterReadingT.setBKw(new BigDecimal(decimalFormat.format(kwB)));
meterReadingT.setCKw(new BigDecimal(decimalFormat.format(kwC)));

这样在保存到sqlserver数据库中时就不会出错了

0 0
原创粉丝点击