sxenguri
@sxenguri

Math.Acos() возвращает странные значения?

6059651d807c2365059034.png
Собственно, суть проблемы изображена на скриншоте.
В первой ячейке массива хранится число 1. Если я попробую узнать Acos этой ячейки, то есть числа 1, то он выдаст мне 1,49011611938477E-08, но если я узнаю Acos от числа 1, то выдаст 0, как и положено.
Что я делаю не так?
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
samodum
@samodum
Какой вопрос - такой и ответ
Какой тип у массива А?
Подозреваю, что double. Тогда A[i]=0.999999999999
Выведи в консоль и посмотри сам.
Тогда и арккосинус от этого числа будет отличен от нуля.
Во втором случае у тебя int и результат поэтому другой

double[] a = new double[5];
a[0] = 0.9999999999999999;
Console.WriteLine("{0}", a[0]);
Console.WriteLine("{0}", Math.Acos(a[0]));

Output:
1
1.49011611938477E-08

https://dotnetfiddle.net/Ye2kTi
Обрати внимание, 0.9999999999999999 в консоли выводится как 1
Здесь подробнее почему такое происходит:
https://stackoverflow.com/questions/24420748/c-sha...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы