Вот код:
static void Main(string[] args)
{
do
{
double angle = Convert.ToDouble(Console.ReadLine());
var radians = angle * Math.PI / 180;
double x = Math.Cos(radians);
double y = Math.Sin(radians);
Console.WriteLine("Radians: " + radians);
Console.WriteLine("Cos: " + x);
Console.WriteLine("Sin: " + y);
}
while (Console.ReadKey().Key != System.ConsoleKey.Escape);
}
Вывод:
90
Radians: 1,5707963267949
Cos: 6,12303176911189E-17
Sin: 1
Делаю на WPF, хочу получать координаты, без округления не получается, может быть есть элегантнее решения?
double radius = Double.Parse(raduisbox.Text);
double angle = Double.Parse(anglebox.Text);
var radians = angle * Math.PI / 180;
double x = radius * Math.Cos(radians);
double y = radius * Math.Sin(radians);
x_coord.Text = x.ToString();
y_coord.Text = y.ToString();
Изменил с округлением, вроде работает
double x = radius * Math.Round(Math.Cos(radians), 3);
double y = radius * Math.Round(Math.Sin(radians), 3);
6,12303176911189E-17- это примерно 6 * 10 в -17 степени (т.е.0.000(много нулей)0006123...). Это достаточно близко к нулю практически для любых целей, а ровно0.0вы все равно не получите. – insolor Aug 28 '17 at 04:57Console.WriteLine("Cos: {0:0.###}", x);– Андрей NOP Aug 28 '17 at 05:03