我怀疑double和float之间的分割精度和速度。
例如:
double a;
a=myfun(); //returns a number with lots of decimals
float b=5.0;
double result=a/b;
如果b会加倍,结果会改变吗? 是否需要更多时间来计算它们是否不是双倍的(因为为了适应双倍大小而改变浮动的大小)?
答案 0 :(得分:1)
如果b会加倍,结果会改变吗?
由于该值为0.5,因此结果不应更改。如果它是一个不同的值,它可能会改变,因为double具有更好的精度然后浮动。
如果它们不是双打,是否需要更多时间来计算?
是的,确实如此。但是从浮动转换为双倍的时间可以被忽略。
答案 1 :(得分:1)
从float转换为double或double转换为float之间的时差实际上可以忽略不计
查看此link它肯定会对您有所帮助。
答案 2 :(得分:0)
double
。浮点除法很昂贵,浮点除法所需的时间稍长。