用浮子划分双倍

时间:2012-10-24 08:31:01

标签: c++ visual-studio-2008 division

我怀疑double和float之间的分割精度和速度。

例如:

double a;
a=myfun(); //returns a number with lots of decimals
float b=5.0;
double result=a/b;

如果b会加倍,结果会改变吗? 是否需要更多时间来计算它们是否不是双倍的(因为为了适应双倍大小而改变浮动的大小)?

3 个答案:

答案 0 :(得分:1)

  

如果b会加倍,结果会改变吗?

由于该值为0.5,因此结果不应更改。如果它是一个不同的值,它可能会改变,因为double具有更好的精度然后浮动。

  

如果它们不是双打,是否需要更多时间来计算?

是的,确实如此。但是从浮动转换为双倍的时间可以被忽略。

答案 1 :(得分:1)

从float转换为double或double转换为float之间的时差实际上可以忽略不计

查看此link它肯定会对您有所帮助。

答案 2 :(得分:0)

你试过这样做吗?无论如何,b在分割期间被转换为double。浮点除法很昂贵,浮点除法所需的时间稍长。