书上看到的一个例子,放在这里消化一下。
如下的一段程序:
期待的运行结果是:第一个64400, 第二个1932。
结果运行结果是:
解析:
错误1:
Short的最大长度是32767, 把64400赋给它,当然会报错了。所以输出了不可预知的数字。
现在改一下程序:
运行结果如下:
第一个结果对了。
第二个应该是1932,怎么少了1块五?
错误2:
QuarterSold是long int, 150也是int,所以结果会被认为是int,也就是没有小数点。
64400除以150等于429.333,结果.333被抹掉了,这就是为什么最后结果少了1.5.
现在我们把程序改一下,强制将分子转换成float。
这次运行结果正确了。
当然也可以用隐性类型转换技术,隐性转换的规则很多,这里就不说了。