#include <stdio.h>
int main()
{
float f = 1717.7890625;
printf( "%.6f", f );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我使用 Visual Studio 19 (16.9.2) 为 x64 arch 编译了这段代码,并在我的两台 Windows 10 PC 上运行了结果:
1717.7890631717.789063发布:1717.789062新版本Debug和Release结果不一样的原因是什么?如何修复它以使两个版本的结果相同?
补充: 代码:
#include <stdio.h>
int main()
{
double f = 0.25;
printf( "%.1f", f );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在新的和旧的 Win10 版本上有相同的行为。我建议,这是较新的 ucrtbase.dll 版本中的错误