关于java.lang.NumberFormatException: For input string: "120.288761"

本文描述了一种在Java中进行类型转换时遇到的隐蔽Bug,详细解析了一个看似简单的double类型转换代码导致错误的原因,以及如何通过调整编码和使用trim()方法解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在类型转换时遇到一个巨隐蔽的bug

上代码

double test3=Double.parseDouble("120.288761");

非常简单的代码,却报了以下错误

我研究了半天没在代码其它地方发现问题。后来终于找到问题了将" 120.288761"复制到notepad 从utf-8改成ANSI编码结果出现"锘?20.288761"。原来在“和1之间有个隐藏字符在utf-8下根本看不出来。我还以为我被bug之神附体了。

其实我idea控制台的编码是utf-8看不出来,eclipse的控制台编码是ANSI结果一眼就看出来了。虽然utf8支持了中文但也有坏处啊。

待续。。。关于这隐藏字符是怎么跑到字符串里的还在研究, 不过解决方法也很简单加个trim(),测试了下trim()不起作用。

找到原因了,具体见下面这条链接:https://blog.youkuaiyun.com/sinat_37356064/article/details/78044929

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值