【发布时间】:2016-10-06 16:14:18
【问题描述】:
我正在从字符串中读取浮点数。它们可以写成各种形式,所以
float f1 = strtof("999999999999.16");
float f2 = stof("000999999999999.1600000");
assert(f1 == f2);
我能否确定断言始终为真,无论前导零和尾随零如何?分隔符总是一个点,stof 不处理逗号。
【问题讨论】:
-
不是 100% 确定。
stof在内部调用strtod,所以我不知道这是否会有所作为。在 C++17 中,它会在内部调用strtof,所以它应该得到保证。 -
我也不是 100% 确定。我认为这个问题需要一个标准参考。 @SnoopDog 的回答应该被视为只是猜想。
标签: c++ floating-point deterministic