先来看一个换算身高的例子:
有这样一个公式:(英尺+英寸/12)*0.3048=.....米
如果这里输入英尺=3;英寸=4,会得到什么结果呢?我们可以运行一下这个程序
public class Main {
public static void main(String[] args)
{
int foot=3;
int inch=4;
System.out.println("(foot+inch/12)*0.3048 = "+(foot+inch/12)*0.3048);
}
}
结果如下:
很明显这个答案是不对了,看一眼就知道这个里面的inch根本没有起作用,那是为什么呢?
因为这里有除(/)运算,所有涉及到浮点类型。有两种方法可以解决这个问题
1.把代码中的12改成12.0,就变成了浮点数,之后再进行计算,我们看结果
现在结果就是正确的。
2.我们可以把inch改成double类型
很显然,这种方法也是正确的。
在这里,我们再提一点就是这个类型的转换,我们记到:
double->int(手工转换) int->double(自动转换)
例如(int)((foot+inch/12.0)*0.3048*100) 前面带int属于类型转换,对里面的数取整,我们也可以验证一下: