提问人:BayanR 提问时间:4/25/2023 最后编辑:BayanR 更新时间:4/25/2023 访问量:118
无法重现 Chrome performance.now() 精度错误
Unable to reproduce Chrome performance.now() precision errors
问:
在 Chromium 浏览器中运行 performance.now() 时。您将面临以下现象,如下面的示例 performance.now() 输出所示。
147.5
150.09999990463257
151.19999980926514
152.09999990463257
156.59999990463257
164.89999985694885
168.89999985694885
172.89999985694885
176.89999985694885
180.29999995231628
185
188.89999985694885
192.59999990463257
196.39999985694885
201.09999990463257
209
212.5
217.09999990463257
220.79999995231628
我知道舍入错误是由于浮点精度而发生的,但是我无法在 c++ 或 javascript 中重现舍入错误。我可以创建的舍入错误看起来与 Chromium 的完全不同。
我已经测试了以下 c++ 代码,但舍入错误不同。
int main() {
float sum = 100.0;
for (int i = 0; i < 1000; i++) {
sum += 0.1;
std::cout << std::fixed << std::setprecision(17);
std::cout << "Actual sum: " << sum << std::endl;
}
return 0;
}
具体是什么导致了这种现象,我们如何使用代码重现 chromium performance.now() 舍入精度错误?
答: 暂无答案
评论
performance.now()
performance.now()
+= 0.1