【发布时间】:2012-04-13 02:53:30
【问题描述】:
以下差异在 C# 中是否重要?
int a, b;
double result;
result = (double)a / b;
result = a / (double)b;
result = (double)a / (double)b;
你用的是哪一个?
【问题讨论】:
-
只要确保你不使用
result = (double)(a/b); -
这些都不是必需的。
a和b已经是双打了。结果变量是双精度的。唯一不会成为双打的是两个双打的除法结果。如果我没记错的话,在这种情况下会自然地从整数转换为双数。 -
@Ramhound
a和b是整数,而不是双精度数。执行result = a / b将导致整数除法,然后转换为双精度数。
标签: c# casting operator-keyword operator-precedence