关于梁勇Java语言程序设计(基础篇)第十版2.2的小心得

原题目:
2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱的体积:
面积 = 半径 * 半径 * P
体积 = 面积 * 高
下面是一个运行示例:
Enter the radius and length of cylinder: 5.5 12
The area is 95.0331
The volume is 1140.4

程序如下:

import java.util.Scanner;

public class VolumeOfCylinder {
	public static void main(String[] args){
	Scanner input = new Scanner(System.in);
	final double PI = 3.1415926;
	
	System.out.print("Enter the radius and length of a cylinder: ");
	double radius = input.nextDouble();
	double length = input.nextDouble();
	
	double area = radius * radius * PI;
	double volume = area * length;
	
	System.out.println("area is " + area);
	System.out.println("volume is " + volume);
	
	System.out.println("area is " + ((int)(10000.0*area))/10000.0);
	System.out.println("volume is " + ((int)(10.0*volume))/10.0);	                                                                                                                      
	}
}

其中我计算的时候为了将面积保留4位小数和体积保留一位小数,又因为不打算用printf格式化,所以决定用刚学的强制类型转换,在转换过程中,不管怎么改最后都是int型而不是想要的保留几位小数,原来代码写的是:

      System.out.println("area is " + ((int)(10000.0*area))/10000); 
      System.out.println("volume is " + ((int)(10.0*volume))/10);

后面对照课本一个参考程序才发现除数用的是int型而不是double型,所以除完之后还是整数,改成(int)10000*area/10000.0就好了。所以以后编程切记整数除整数无论如何都是整数,必须加个.0来保证得到想要的结果。

posted @ 2017-04-12 10:34  DeveloperAndrewLee  阅读(898)  评论(0)    收藏  举报