Не работает округление double переменных - C#

Узнай цену своей работы

Формулировка задачи:

работаю с 2я векторами, вычисляю угол между ними в радианах и перевожу в градусы. Надо брать arccos, пока беру разные векторы - все работает, если беру одинаковые например v1 = (1, 1, 1) и v2 = (1, 1, 1), то по вычислению получается мелкое число но больше 1 или -1, потому Arccos возвращает NaN. Написал условие округления - но оно почему то не работает. Заранее благодарен откликнувшимся гуру кода
Листинг программы
  1. vScalar = (v1.X * v2.X + v1.Y * v2.Y + v1.Z * v2.Z);
  2. if (vScalar > 1.0)
  3. {
  4. Math.Truncate(vScalar);
  5. }
  6. else if (vScalar < -1.0)
  7. {
  8. Math.Truncate(vScalar);
  9. }
  10. v1Length = Math.Sqrt(v1.X * v1.X + v1.Y * v1.Y + v1.Z * v1.Z);
  11. v2Length = Math.Sqrt(v2.X * v2.X + v2.Y * v2.Y + v2.Z * v2.Z);
  12. double j = vScalar / (v1Length * v2Length);
  13. cAngle = Math.Acos(j);
  14. Angle = (cAngle*(180/Math.PI));

Решение задачи: «Не работает округление double переменных»

textual
Листинг программы
  1. vScalar = Math.Truncate(vScalar);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут