1

我对双精度和浮点除法的精度和速度有疑问。

例如:

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

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

4

3 回答 3

2

从 float 到 double 或 double 到 float 的转换时间差真的可以忽略不计

查看此链接,它肯定会对您有所帮助。

于 2012-10-24T08:36:19.367 回答
1

如果 b 是双倍的,结果会改变吗?

由于该值为 0.5,因此结果不应改变。如果它是一个不同的值,它可能会改变,因为双精度比浮点精度更高。

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

是的,它确实。但是从 float 转换为 double 的时间真的可以忽略不计。

于 2012-10-24T08:34:44.503 回答
0

你试过这样做吗?doubleb无论如何都会在除法期间转换为。浮点除法很昂贵,浮点除法所需的时间稍快。

于 2012-10-24T08:33:45.423 回答