我对双精度和浮点数的除法的精度和速度有疑问。
例如:
double a;
a=myfun(); //returns a number with lots of decimals
float b=5.0;
double result=a/b;如果b是双倍,结果会改变吗?如果它们不是双精度的,是否需要更多的时间来计算(因为改变了浮点数的大小以适应双倍尺寸)?
发布于 2012-10-24 16:34:45
如果b是双倍,结果会改变吗?
由于该值为0.5,因此结果应该不会改变。如果它是一个不同的值,它可能会改变,因为double比float具有更高的精度。
如果它们不是双精度的,是否需要更多的时间来计算?
是的,确实如此。但是,从浮点数转换为双精度数的时间确实可以忽略不计。
发布于 2012-10-24 16:36:19
从浮点型转换为双精度型或双精度型转换为浮点型之间的时间差可以忽略不计
看看这个link,它肯定会对你有帮助。
发布于 2012-10-24 16:33:45
你试过这样做吗?在除法过程中,B无论如何都会转换为double。浮点除法的开销很大,而浮点除法所需的时间稍快一些。
https://stackoverflow.com/questions/13045485
复制相似问题