控制VS2010 C中编译时计算的浮点精度

时间:2013-07-30 11:15:28

标签: c visual-studio-2010 visual-c++ floating-point-precision

似乎VS2010编译器计算具有双精度的表达式,除非完全禁用编译器优化(/Od)。

static const float a = 1.0f;
if (b < (float)(1.0f + a))...

这里,1.0f + a首先使用双精度计算,然后在优化级别不是/Od时将其转换为单精度。不幸的是,在将编译器浮点模型设置为strict时,我们不能将预编译器#defines与计算表达式一起使用,因此这不是一个选项。

如何以适当的方式处理它并强制编译器以单精度计算上述语句?

0 个答案:

没有答案