草庐IT

javascript - 为什么 Math.cbrt(1728) 产生的结果比 Math.pow(1728, 1/3) 更准确?

在JavaScript中,Math.cbrt(1728)计算出12的精确结果。但是,看似等价的表达式Math.pow(1728,1/3)的计算结果为11.999999999999998。为什么这些结果的精度不同? 最佳答案 前面的一些一般性评论:如本seminalpaper中所述,由于有限的精度和范围限制,浮点运算与真正的数学完全不同(例如,缺乏结合性)数学上等价的表达式不是在浮点运算中计算时必然等效。计算机语言标准通常不保证任何数学函数的特定精度,或相同的误差范围在不同的数学函数之间,例如cbrt()或pow()。但为给定的提供正

c - C 中 Linux 上的奇怪 cbrt() 结果

为什么这两个返回值为cbrt()功能不同?#include#include#includeintmain(){doublenb=56623104;doublev1=cbrt(nb);printf("v1->%.15f\n",v1);doublev2=cbrt((double)56623104);printf("v2->%.15f\n",v2);}编译:gcctoto.c-ototo-lm&&./toto结果:v1->384.000000000000057v2->384.000000000000000 最佳答案 恭喜,这是一个编译器错