从度数转换为弧度再返回会留下非常小的剩余部分
Converting from degrees to radians and back leaves a very small leftover
所以我有以下 javascript 代码:
function dosine(){
var num = document.getElementById('num').value;
console.log(num);
num = (num*Math.PI)/180;
num = Math.sin(num);
numinverse = Math.asin(num);
num = num * (180/Math.PI);
numinverse = numinverse * (180/Math.PI);
document.getElementById('resultsine').innerHTML = "Sine: " + num.toString();
document.getElementById('resultinverse').innerHTML = "Inverse Sine: " + numinverse.toString();
}
当我 运行 这段代码并输入任意数字(在本例中我使用 64 进行测试)时,numinverse returns 64.00000000000001,我只是想知道这是为什么。我显然可以通过使用 toFixed 来解决这个问题,但我想知道为什么首先会发生这种情况。
这可能与为什么 0.1 + 0.2 ≠ 0.3
该值是一个浮点数,表现不是很准确。在您的情况下,您还可以创建一些哈希表,将整数度值映射到弧度,但它不会覆盖整个频谱。
所以我有以下 javascript 代码:
function dosine(){
var num = document.getElementById('num').value;
console.log(num);
num = (num*Math.PI)/180;
num = Math.sin(num);
numinverse = Math.asin(num);
num = num * (180/Math.PI);
numinverse = numinverse * (180/Math.PI);
document.getElementById('resultsine').innerHTML = "Sine: " + num.toString();
document.getElementById('resultinverse').innerHTML = "Inverse Sine: " + numinverse.toString();
}
当我 运行 这段代码并输入任意数字(在本例中我使用 64 进行测试)时,numinverse returns 64.00000000000001,我只是想知道这是为什么。我显然可以通过使用 toFixed 来解决这个问题,但我想知道为什么首先会发生这种情况。
这可能与为什么 0.1 + 0.2 ≠ 0.3
该值是一个浮点数,表现不是很准确。在您的情况下,您还可以创建一些哈希表,将整数度值映射到弧度,但它不会覆盖整个频谱。