java程序由mysql转到sqlserver时在浮点数处理上遇到的错误
2015-08-13 11:21
447 查看
将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数据库中时就不会出错了
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数据库中时就不会出错了
相关文章推荐
- Java DecimalFormat 用法
- 在spring官网下载jar包、源码、文档
- SpringMVC表单标签(6)
- 轻量级java ee 中的相关技术概述
- 一个有趣的程序,java的引用传参。
- eclipse学习
- Java多线程——<八>多线程其他概念
- Struts2 的 helloworld
- Java多线程之多线程异常捕捉
- java 随机长度10位数组,输入两个数字,找出差值最小的
- java 参数传递和String
- myEclipse中如何设置字体大小
- Java--反射机制初探
- SpringMVC表单标签(5)
- java用户密码摘要加盐的两种方式
- SpringMVC表单标签(4)
- spring framework 4 源代码阅读器(1) --- 事前准备
- SpringMVC表单标签(3)
- 学习使用用Eclipse编写java程序
- SpringMVC表单标签(2)