有时候,编写代码,出现类似情况
(double)Number1/(int)Number2 //division of a double type varible by a int one.
出现在我身上(并且我认为,或多或少地出现在你们所有人身上),而且我不知道如果我将(int)重写为(int),会发生什么。
(double)Number1/(double)Number2
性能相同吗?和精度?以及执行它所花费的时间...变化了吗?在一般情况下(如果可以说这样的话),编译器是否编写相同的二进制文件。一世。例如,exe文件?被调用的ALU运算符会改变吗?
我相信,正式的答案将取决于机器,编译器和语言的体系结构以及更多其他内容。但是...在这些情况下,如何对“我的代码”中会发生什么以及如何选择会更好(如果存在明显差异)有一个看法?
谢谢大家的答复!
答案 0 :(得分:0)
精度可以不同。
例如,如果Number2
最初是double
,则在除法之前可能会通过截断任意位而用int
将其转换为(int)Number2
到int
在二进制点之后,并截断public decimal Threshold { get; set; }
public decimal Value{ get; set; }
中不适合的所有整数位。