Не работает округление double переменных - C#
Формулировка задачи:
работаю с 2я векторами, вычисляю угол между ними в радианах и перевожу в градусы. Надо брать arccos, пока беру разные векторы - все работает, если беру одинаковые например v1 = (1, 1, 1) и v2 = (1, 1, 1), то по вычислению получается мелкое число но больше 1 или -1, потому Arccos возвращает NaN. Написал условие округления - но оно почему то не работает. Заранее благодарен откликнувшимся гуру кода
vScalar = (v1.X * v2.X + v1.Y * v2.Y + v1.Z * v2.Z); if (vScalar > 1.0) { Math.Truncate(vScalar); } else if (vScalar < -1.0) { Math.Truncate(vScalar); } v1Length = Math.Sqrt(v1.X * v1.X + v1.Y * v1.Y + v1.Z * v1.Z); v2Length = Math.Sqrt(v2.X * v2.X + v2.Y * v2.Y + v2.Z * v2.Z); double j = vScalar / (v1Length * v2Length); cAngle = Math.Acos(j); Angle = (cAngle*(180/Math.PI));
Решение задачи: «Не работает округление double переменных»
textual
Листинг программы
vScalar = Math.Truncate(vScalar);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д