数据库报错:从数据类型 varchar 转换为 numeric 时出错。因为字段里的值有个'0E-7'
解决:字段类型Decimal 值 0E-7
解决办法就是把引号去掉
原:
insert into xxxx
values
('0E-7')
改:
insert into xxxx
values
(0E-7)
起初一直报错:从数据类型 varchar 转换为 numeric 时出错,检查语句没毛病,
注:sql语句是由华为云数据库生成的
最后测试发现是插入语句时的有个是'0E-7',闹不清这个值是啥意思,就看了看字段类型是
[Longitude] decimal(10,7) NULL ,
菜鸟一个,百度去
Decimal 值 0E-7
BigDecimal值‘0’,在IBM的JDK下,我调用setScale(8)方法得到新值为‘0.00000000’,
可是我在用sun的JDK下调用setScale(8)得到值为‘0E-8’
------分割线------
两个是相等的只是实现的toString有点区别,
jdk里的方法输出什么不能改变,sum里的setScale(int)就是返回unscaledValue × 10-scale
7以上就会用0E-7表示toString
你想要sun的jdk也实现0.00000000可以这样
BigDecimal big = new BigDecimal(0);
DecimalFormat df=new DecimalFormat("0.00000000");
String str=df.format(big);
System.out.println(str);
------分割线------
这个会导致jsp页面输出OE-8,而不是0.00000000
或者数据库精度不要超过6就ok,不用考虑那么多麻烦