为了账号安全,请及时绑定邮箱和手机立即绑定

如何为十进制数字做Integer.parseInt()?

如何为十进制数字做Integer.parseInt()?

蝴蝶不菲 2019-12-03 15:11:06
Java代码如下:String s = "0.01";int i = Integer.parseInt(s);但是,这引发了NumberFormatException ...可能出了什么问题?
查看完整描述

3 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

0.01不是整数(整数),因此您当然不能将其解析为整数。使用Double.parseDoubleFloat.parseFloat代替。


查看完整回答
反对 回复 2019-12-03
?
翻阅古今

TA贡献1780条经验 获得超5个赞

String s = "0.01";

double d = Double.parseDouble(s);

int i = (int) d;

出现异常的原因是整数不包含有理数(基本上是分数)。因此,尝试解析0.3为int是胡说八道。一个double或一个float数据类型可以容纳有理数。


Java将a转换double为an的方式int是通过将小数点分隔符后的部分舍入为零来完成的。


int i = (int) 0.9999;

i 将为零。


查看完整回答
反对 回复 2019-12-03
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

实际上,这种转换在Java中令人难以置信


例如,以下字符串:“ 100.00”


C:至少从1971年起就提供了一个简单的标准库函数(“ atoi”这个名字是从哪里来的?)


int i = atoi(decimalstring);

Java:通过Double(或Float)解析强制转换,然后强制转换


int i = (int)Double.parseDouble(decimalstring);

Java肯定有一些奇怪之处


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 454 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信