我已经创建了一个基于泰勒系列来计算余弦的函数, 只有在与标准库余弦进行比较时才会遇到精度问题。 例如,计算23我的cos给出: -0.53283的 4 标准库给出: -0.53283 3
我一直在网上搜索,并试图自己解决这个问题,但却无法确定问题所在! 当将treashould增加到1.0e-7时,问题就解决了。 但它也适用于1.0e-6(因为它适用于我的朋友)
非常感谢任何见解,谢谢你。
str.matches("\\d+")
答案 0 :(得分:1)
当您致电printf
此
printf("%f\n", my_cos(23));
printf("%f\n", cos(23));
将打印
-0.532834
-0.532833
似乎“错误”。
但是 如果你增加打印的位数,如
printf("%0.12f\n", my_cos(23));
printf("%0.12f\n", cos(23));
它会打印
-0.532833931872
-0.532833020333
所以你有你想要的精度。只是印刷使它看起来好像出了问题。