首页 > 编程知识 正文

java double 转int_java – 从double转换为int并不总是只是放弃小数部分

时间:2023-05-04 03:37:28 阅读:50746 作者:2437

正在尝试在这里找到的代码

the Java specialists’newsletter。

公共类管理办公文件{

publicstaticstringfindoutwhatlifeisallabout (

int meaning=0;

for(intI=0; i 10; I ) {

for(intj=0; j 20; j ) {

for(intk=0; k 300; k ) {

for(intm=0; m 7000; m ) {

meaning =Math.random () 1;

}

}

}

}

returnstring.valueof(meaning ).replaceall('0*$ ','');

}

publicstaticvoidmain (字符串[ ] args ) {

system.out.println (findoutwhatlifeisallabout ();

}

}

“打印什么”这个问题的答案似乎很明显,但如果你发现有一个隐式演员和compound assignment operator=。

但是印得像420000006或420000007。

420000000 (或删除尾随零而不是“42”)。

因此,double到int的转换表明不一定要放弃两倍的小数部分。 正如这里所说明的,How to cast a double to an int in Java?

所以我做了一些实验。 这里是我发现的一个例子:

system.out.println((int ) ) 131070.99999999999 ); //- 131070

system.out.println((int ) ) 131071.99999999999 ); //- 131071

system.out.println((int ) ) 131072.99999999999 ); //- 131073!

system.out.println((int ) ) 131073.99999999999 ); //- 131074!

system.out.println((int ) ) 16382.999999999999 ); //- 16382

system.out.println((int ) ) 16383.999999999999 ); //- 16383

system.out.println((int ) ) 16384.999999999999 ); //- 16385!

system.out.println((int ) ) 16385.999999999999 ); //- 16386!

那么现在我在找解释这个行为吗?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。