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

被折叠的 条评论
为什么被折叠?



