数据库报错:从数据类型 varchar 转换为 numeric 时出错。因为字段里的值有个‘0E-7‘,字段类型Decimal 值 0E-7

数据库报错:从数据类型 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  ,

菜鸟一个,百度去

文章地址:https://www.iteye.com/blog/aguu125-1620326

 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,不用考虑那么多麻烦


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙-极纪元JJY.Cheng

客官,1分钱也是爱,给个赏钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值