Не работает округление 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д