static const double sKPrecision = 1.e+16;
std::sprintf(str, "%1.15e", round(val * sKPrecision) / sKPrecision);
观察:
val str for Linux str for QNX
-0.174533 -1.745329251994333e-01 -1.745329251994333e-01
1.06202 1.062015382745040e+00 1.062015382745040e+00
1.63244 1.632439935370810e+00 1.632439935370811e+00
根据上表,对于1.63244," str" QNX与Linux不同。 我希望这个值与Linux的值相同。我不知道如何为QNX平台解决它。
答案 0 :(得分:0)
从这里开始:Enabling strict floating point mode in GCC和GCC Wiki - Floating Point Math
需要考虑的其他事项: