经典面试题:计算0.01+0.02+0.03+......+1.0 = ? 的值,值是50.5
2015-01-14 20:05
302 查看
<span style="font-size:14px;"><span style="color:#FF0000;"><span style="font-size:18px;">第一种错误思路:</span></span> package 第三天_练习题; //计算0.01+0.02+0.03+......+1.0 = ? 的值 public class Test8 { public static void main(String[] args) { double sum=0.0; for(double d=0.01;d<=1.0;d=d+0.01) { sum=sum+d; } System.out.println("用double类型的for循环求出的和\nsum="+sum); } }</span>用double类型的for循环求出的和
sum=49.50000000000003
第二种错误思路:
<span style="color:#000000;">package 第三天_练习题; //计算0.01+0.02+0.03+......+1.0 = ? 的值 public class Test8 { public static void main(String[] args) { double sum=0.0; float sum2=0.0f;//注意这个要加f,因为默认的是double型的,不然要强转(float)。 for(float d=0.01f;d<=1.0f;d=d+0.01f) { sum=sum+d; } System.out.println("用float类型的for循环求出的和\nsum="+sum); } } </span> 用float类型的for循环求出的和 sum=50.499976608902216第三种才是正确的思路
<span style="font-size:18px;color:#FF0000;">package 第三天_练习题; //计算0.01+0.02+0.03+......+1.0 = ? 的值 public class Test8 { public static void main(String[] args) { double sum=0.0; double d=0.01; double newSum=0.0; for(int i=0;i<100;i++) { sum=sum+d; newSum=(int)(sum*100.0)/100.0; d=d+0.01; } System.out.println(newSum); } }</span>
正确答案就是50.5
相关文章推荐
- 计算进程(经典面试题) fork() 用法(转)
- 一道经典面试题:计算n以内的素数(质数)算法
- 李洪强IOS经典面试题 33-计算有多少个岛屿
- JAVA实验 计算 0.01到1.0的数列之和
- 经典面试题:计算积水的横截面积
- 经典面试题------农夫养牛
- Struts,Hibernate,Spring经典面试题收藏
- 程序员经典面试题及答案3
- 单链表的一些经典面试题
- C++经典面试题
- 【计算机网络常见面试题】ip及掩码计算题
- 面试题:计算0到n的数中有多少个2
- Angularjs十大经典面试题
- 经典的20道AJAX面试题
- 关于索引的一道经典面试题
- 经典Java面试题-Java中Char类型的运算
- 李洪强经典面试题41-iOS选择题
- php面试题一道(计算一个十进制数转二进制后其中‘1’的个数)
- Android&Java经典面试题
- C#经典面试题及答案【2009-02-10更新】