关于Integer.parseInt()的问提

snoopymyself 2009-08-13 07:40:40
为什么double d = Double.parseDouble("52.54");是正确 而int i = Integer.parse.Int("52.54"); 却不正确,有哪位能给指点下迷津。
...全文
191 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
JasonYao 2009-08-14
  • 打赏
  • 举报
回复
强制转换 int i = (int)52.54;
qiubojuncode 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 poimarine 的回复:]
int number = (int)(Double.parseDouble(52.54));
[/Quote]
正确
snoopymyself 2009-08-14
  • 打赏
  • 举报
回复
谢谢各位,本人菜鸟一个,不过大家的解答倒是看明白了 ,THanks!!呵呵
charity_2Bt 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yanliang_xt 的回复:]
引用 4 楼 wangsir1 的回复:
在java中int型是32位的而double是64位的,所以不可以把double型的数转换成int型,反之可以的。


可以相互转化,只是一个是强制,一个是自动转化而已。
[/Quote]就是这个意思,大转小可自动转换,小转大则需强制转换,有可能会丢失数据,如int i = (int)52.54; 就会丢失数据(丢失小数位,注意不会四舍五入)!!其实小向大转有时也会不准确!
sunmengsimon 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 snoopymyself 的回复:]
为什么double d = Double.parseDouble("52.54");是正确 而int i = Integer.parse.Int("52.54"); 却不正确,有哪位能给指点下迷津。
[/Quote]应该是parseInt把中间那个点去掉试试呢???
hyhymn 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 blliy117 的回复:]
可以看一下Integer.parseInt("52.54") 的实现

原理自然就出来了。
[/Quote]
Up。
晴天v1 2009-08-13
  • 打赏
  • 举报
回复
楼上的都解释清楚了,我觉得楼主对这种问题应该先自己想想,实在不明白再来问,虽然我也是菜鸟。
ccnadogteam 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
那个又不是整型,怎么解析啊?
[/Quote]
支持1楼
ccnadogteam 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 snoopymyself 的回复:]
为什么double d = Double.parseDouble("52.54");是正确 而int i = Integer.parse.Int("52.54"); 却不正确,有哪位能给指点下迷津。
[/Quote]
晕,点错了不好意思,呵呵
ccnadogteam 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 snoopymyself 的回复:]
为什么double d = Double.parseDouble("52.54");是正确 而int i = Integer.parse.Int("52.54"); 却不正确,有哪位能给指点下迷津。
[/Quote]
支持高人
ccsongdi 2009-08-13
  • 打赏
  • 举报
回复
int 向double转换是小空间向大空间转换,需要强制转换
blliy117 2009-08-13
  • 打赏
  • 举报
回复
可以看一下Integer.parseInt("52.54") 的实现

原理自然就出来了。
aa870816 2009-08-13
  • 打赏
  • 举报
回复
Java中,从小的范围转换到大的范围时时自动的,
反之则需要强制类型转换~~~
liujiajun8888 2009-08-13
  • 打赏
  • 举报
回复
String str = "12.3";
double i = Double.parseDouble(str);
int j = (int)i;
这样吧
izard999 2009-08-13
  • 打赏
  • 举报
回复
抛出NumberFormatException. Integer.parse.Int()只能转换整形的..
yanliang_xt 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangsir1 的回复:]
在java中int型是32位的而double是64位的,所以不可以把double型的数转换成int型,反之可以的。
[/Quote]

可以相互转化,只是一个是强制,一个是自动转化而已。
poimarine 2009-08-13
  • 打赏
  • 举报
回复
int number = (int)(Double.parseDouble(52.54));
WangSir1 2009-08-13
  • 打赏
  • 举报
回复
在java中int型是32位的而double是64位的,所以不可以把double型的数转换成int型,反之可以的。
yanliang_xt 2009-08-13
  • 打赏
  • 举报
回复
“52.54"是一个字符串,含有小数,它怎么可能转化为整呢》
肯定会出现格式错误
YY_MM_DD 2009-08-13
  • 打赏
  • 举报
回复
hehe
加载更多回复(1)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧