关于while()一个死循环问题 while(i!=0&&i==-i){}如何申明i可以使这个while成为死循环还有个小问题System.out.println(2.00-1.10)为什么打印出的是0.8999999999999999 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (1)while(true){ System.out.println("死定了");}(2)浮点数在计算机中的表示是有一定精度的。 while (i==i){} //死循环 while(true){}for(;;){}都是死循环 你们没看清我的问题,我不是要个死循环,我是要while(i!=0&&i==-i){}条件不变,通过申明"i"来使这个循环变成死循环 while (i==i || (i-i)==0 || (i/i)==1 || (i%i)==0 ){} 错了,不是i = 0xFFFFFFFF 只要把while里的结果弄为true就可以造成楼主要的结果了。浮点型是有误差的。 lz要一个数 i i的负数与i相等 但是这个i不是0 ! 我只知道有 i != i 本身 2个问题在Java.Puzzlers.Traps.Pitfalls.and.Corner.Cases这本书中有提到过while(i!=0&&i==-i){} i = Integer.MIN_VALUE 或 i = Long.MIN_VALUE;第二个是浮点数精度问题 2.00-1.1,结果为0.9可以用BigDecimal,但注意用BigDecimal(String) 带string的构造函数System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10"))); 这样的i不知道是什么,看有没有老大知道。2.00-1.10,很多方法。你可以先把这两个数乘100,然后取整,相减,再除以100,然后取保留2位小数。或者用BigDecimal类new BigDecimal(String.valueOf(2.00)).subtract(new BigDecimal(String.valueOf(1.10))) 多谢huhuGang,我又长知识了。Integer.MIN_VALUE = 0x80000000 在5.0中,由于auto-unboxing的影响,也会存在i,j使得i <= j && j <= i && i != j double i1 = 2.00; double i2 = 1.999999999999999; double i = i1 - i2; System.out.println(i1-i2); System.out.println((int)(i1-i2)); while(i!=0 && (int)i == -(int)i){ System.out.println("Success"); }死循环试一下 for(;;;)我觉得这个语句比较好新手上路,请多多指教 Integer.MIN_VALUE 只有这个值满足条件,因为它是不对称的,已出了 int的范围 -2^31 ~~ 2^31-1 我也想知道System.out.println(2.00-1.10) (1)如果i是整型,那么i=0x80000000,就死了(2)浮点数就是这样不精确的,常常缺斤少两…… 1)在不改变while的表达式时令 i = -1 就可以了啊。2)因为运算后的结果是double型的,是有一定的精度的。 在二进制里,0.1是不能精确表示的,正如在十进制里的1/3一样,所以才有1.0-0.9=0.09999999999999998,==================================================================================我们用java来解决实际问题。java技术交流,讨论java的技术细节和最新技术。欢迎中高级程序员以及渴望学习java技术的初学者加入讨论。QQ群:3001581 JAVA随机数显示问题 抽象类问题 java小问题,问倒千万自人为的老鸟 如何编译继承自定义包的JAVA文件 关于调用系统程序和Query String类的问题? 线程阻塞如何解决? 怎样在jb9中自动运行JBOSS?给分100! jbuilder的问题 在jbuilder6或者7中怎样集成junit呢? 请问怎么用sql语句取数据集中的某一特定部分数据(急,急,急) java下读写xml用什么方便? 关于JSP调用JAVABEAN的问题?
while(true){
System.out.println("死定了");
}(2)
浮点数在计算机中的表示是有一定精度的。
都是死循环
来使这个循环变成死循环
}
i = Integer.MIN_VALUE 或 i = Long.MIN_VALUE;第二个是浮点数精度问题
可以用BigDecimal,但注意用BigDecimal(String) 带string的构造函数System.out.println(new BigDecimal("2.00").subtract(new BigDecimal("1.10")));
你可以先把这两个数乘100,然后取整,相减,再除以100,然后取保留2位小数。
或者用BigDecimal类
new BigDecimal(String.valueOf(2.00)).subtract(new BigDecimal(String.valueOf(1.10)))
Integer.MIN_VALUE = 0x80000000
i <= j && j <= i && i != j
double i2 = 1.999999999999999;
double i = i1 - i2;
System.out.println(i1-i2);
System.out.println((int)(i1-i2));
while(i!=0 && (int)i == -(int)i){
System.out.println("Success");
}
死循环试一下
我觉得这个语句比较好
新手上路,请多多指教
只有这个值满足条件,因为它是不对称的,已出了
如果i是整型,那么i=0x80000000,就死了
(2)
浮点数就是这样不精确的,常常缺斤少两……
==================================================================================
我们用java来解决实际问题。java技术交流,讨论java的技术细节和最新技术。欢迎中高级程序员以及渴望学习java技术的初学者加入讨论。QQ群:3001581