Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算三角形角度时的小数舍入问题_Javascript_Math_Decimal - Fatal编程技术网

Javascript 计算三角形角度时的小数舍入问题

Javascript 计算三角形角度时的小数舍入问题,javascript,math,decimal,Javascript,Math,Decimal,我创造了三个角度。这些角度创建了一个三角形。我想在画布中显示计算出的角度,为此我正在计算角度并舍入显示。在计算角度时,我正在使用Math.round()舍入小数位数。 因此,如果我将65.25,70.36,44.39度作为三个角度的值,四舍五入后,它将是65,70,44,它将变成179度而不是180度(这里缺少一度)。我如何解决这个问题? 这里有一些图片供参考 一种方法是根据其他两个角度计算第三个角度(四舍五入),而不是简单地将它们四舍五入。例如: var th0 = 65.25; var th

我创造了三个角度。这些角度创建了一个三角形。我想在画布中显示计算出的角度,为此我正在计算角度并舍入显示。在计算角度时,我正在使用
Math.round()舍入小数位数。

因此,如果我将
65.25,70.36,44.39度
作为三个角度的值,四舍五入后,它将是
65,70,44,它将变成179度而不是180度
(这里缺少一度)。我如何解决这个问题? 这里有一些图片供参考


一种方法是根据其他两个角度计算第三个角度(四舍五入),而不是简单地将它们四舍五入。例如:

var th0 = 65.25;
var th1 = 70.36;
var th2 = 44.39;

var th0r = Math.round(th0);
var th1r = Math.round(th1);
var th2r = 180.0 - th0r - th1r;

这将迫使
th0r+th1r+th2r
总和始终为180。通过从其他两个角度中选择最佳角度进行计算,您可以变得更复杂一些,但这可能足以满足大多数应用。

仅对显示值进行四舍五入,而不是对计算值进行四舍五入。@Diodeus但在显示中,我们将得到65、70和44个值,这并不是完成180度的三角形。