三角函数 sin C# Cos 和 Cos
Trignometry in C# Cos & CosA
我正在 运行 回答一些应该很容易回答的问题,但我不能把我的手指放在上面。自从我做了一些三角函数以来已经有一段时间了。
double cosValue = -2.7105054312E-20;
// (ACos) returns the angle
var deducedAngleInRadian = System.Math.Acos(cosValue);
var cos = System.Math.Cos(deducedAngleInRadian);
Console.WriteLine(cosValue);
Console.WriteLine(deducedAngleInRadian);
Console.WriteLine(cos);
输出:
-2.7105054312E-20
1.5707963267949
6.12303176911189E-17
为什么cosValue
和cos
不一样?
您是否注意到这两个值接近 0 且彼此接近的程度?
浮点 (im) 精度和每个方法的实现可能完美地解释了这一点。
这些方法并不完美,例如它们依赖于 Pi 的近似值(当然,因为 Pi 不能存储在计算机中;))。
您可能可以使用专门用于此并使用比 Double 精度更高的类型的科学库来获得更高的精度(您真的需要它吗)。
您可能会在 Math operations using System.Decimal in C#? or
中找到一些有趣的东西
我正在 运行 回答一些应该很容易回答的问题,但我不能把我的手指放在上面。自从我做了一些三角函数以来已经有一段时间了。
double cosValue = -2.7105054312E-20;
// (ACos) returns the angle
var deducedAngleInRadian = System.Math.Acos(cosValue);
var cos = System.Math.Cos(deducedAngleInRadian);
Console.WriteLine(cosValue);
Console.WriteLine(deducedAngleInRadian);
Console.WriteLine(cos);
输出:
-2.7105054312E-20
1.5707963267949
6.12303176911189E-17
为什么cosValue
和cos
不一样?
您是否注意到这两个值接近 0 且彼此接近的程度?
浮点 (im) 精度和每个方法的实现可能完美地解释了这一点。 这些方法并不完美,例如它们依赖于 Pi 的近似值(当然,因为 Pi 不能存储在计算机中;))。
您可能可以使用专门用于此并使用比 Double 精度更高的类型的科学库来获得更高的精度(您真的需要它吗)。 您可能会在 Math operations using System.Decimal in C#? or
中找到一些有趣的东西