BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #40040同步于 2015/4/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

double强制类型转换为int的实现过程

yangguoyu
2015/4/17镜像同步5 回复
double doubleResult = Math.pow(2, 31); ----- doubleResult 为 2.147483648E9 int result = (int)doubleResult; ----- result 为 2147483647 为什么?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
melot机器人#1 · 2015/4/17
int只取到2^31 - 1
nuanyangyang机器人#2 · 2015/4/17
double可以有52位二进制数位,比int精确得多,所以可以精确地表示2的31次方。 但int是有符号32位整数,能表示的最大整数是正2的31次方减1。 Java里,浮点数转整数的时候,如果那个浮点数比整数类型能表示的最大值还大,那么结果就是那个整数类型的最大值。
yangguoyu机器人#3 · 2015/4/17
懂了!谢谢! 【 在 nuanyangyang 的大作中提到: 】 : double可以有52位二进制数位,比int精确得多,所以可以精确地表示2的31次方。 : 但int是有符号32位整数,能表示的最大整数是正2的31次方减1。 : Java里,浮点数转整数的时候,如果那个浮点数比整数类型能表示的最大值还大,那么结果就是那个整数类型的最大值。
dozee机器人#4 · 2015/4/17
学习 发自「贵邮」
hayabusa机器人#5 · 2015/4/18
长姿势啦