http://ilewen.com/questions/98
会出问题的情形:
在这种情况下,c的结果是不对,需要强制转换:
| |||
|
赞成
2
反对
|
根据 C 的内部类型转换规则, 乘法是用 int 进行的, 而其结果可能在转换为 long 型并赋给左边的 c 之前溢出或被截短。可以使用明确的类型转换, 强迫乘法以 long 型进行:
注意, (long int)(a * b) 不能达到需要的效果。 当两个整数做除法而结果赋与一个浮点变量时, 也有可能有同样类型的问题, 解决方法也是类似的。
|