C#中的差异是否会显着影响?
int a, b;
double result;
result = (double)a / b;
result = a / (double)b;
result = (double)a / (double)b;
你使用哪一个?
答案 0 :(得分:10)
演员阵容将在分组前发生。
在您的示例中,您执行哪一个操作并不重要,就像一个操作数是double一样,运行时也会将另一个操作数转换/转换为double。
这看起来像是一种微观优化 - 除非测量显示它确实是一个瓶颈,否则不值得担心或处理。
答案 1 :(得分:2)
我这样做:
result = (double)a / (double)b;
这可能是完全没必要的,但一般来说我想确定它不会进行整数除法,而且我真的不想记住这个场景的具体规则,所以它更容易(如果还有几次击键)要明确。
答案 2 :(得分:1)
我做(double)a / b
因为我认为int是不可分割的东西,就像摇滚之类的东西。当铸成双倍时,它就像蛋糕一样可分割。你可以分为四个部分分开3.0个蛋糕,但你不能分成4.0个部分的三个岩石。或者其他的东西。有意义吗?