Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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_Svg_Comparison - Fatal编程技术网

有人对javascript与大数字的比较有解决方案吗?

有人对javascript与大数字的比较有解决方案吗?,javascript,svg,comparison,Javascript,Svg,Comparison,我一直在摆弄HTML和SVG。作为实践,我创建了一个页面,该页面使用javascript求解毕达哥拉斯定理,并在300hx300w区域显示三角形。我认为我的问题是,当变量“a”和变量“b”之间的差异过大时,如果(a>b)”不能正常工作,则比较“”。因此,它对a=55和b=32甚至a=5555和b=5000都非常有效,但如果我这样做a=1001和b=55的话,它运行时似乎就好像b大于a一样 <h2>Pythagorean theorem</h2> <p>Ente

我一直在摆弄HTML和SVG。作为实践,我创建了一个页面,该页面使用javascript求解毕达哥拉斯定理,并在300hx300w区域显示三角形。我认为我的问题是,当变量“
a
”和变量“
b
”之间的差异过大时,如果(a>b)”不能正常工作,则比较“
”。因此,它对
a=55
b=32
甚至
a=5555
b=5000
都非常有效,但如果我这样做
a=1001
b=55
的话,它运行时似乎就好像
b
大于
a
一样

<h2>Pythagorean theorem</h2>
<p>Enter Variable "a"<input id="vara" type="text"></p>
<p>Enter Variable "b"<input id="varb" type="text"></p>
<p><span id="a">a</span><sup>2</sup> + 
<span id="b">b</span><sup>2</sup> = 
<span id="c">c</span><sup>2</sup></p>

<script>
function pythagorean(){
var a=document.getElementById("vara").value;
var b=document.getElementById("varb").value;
var x=a * a + b * b;
var c=Math.sqrt(x);

if(a>b){
    ay=0
bx=b/a*300
}
else{
ay=300-(a/b*300)
bx=300
}

document.getElementById("a").innerHTML=a;
document.getElementById("b").innerHTML=b;
document.getElementById("c").innerHTML=c;
document.getElementById('trianglepoints').setAttribute("points",bx+",300 0,300 0,"+ay);
}

</script>

<svg id="triangle xmlns="http://www.w3.org/2000/svg" version="1.1" height="300" width="300">
<polygon id="trianglepoints" points=""
style="fill:red;stroke:black;stroke-width:1;">
</svg>
<br />

<button type="button" onclick="pythagorean()">calculate</button>
毕达哥拉斯定理 输入变量“a”

输入变量“b”

a2+ b2= c2

勾股函数(){ var a=document.getElementById(“vara”).value; var b=document.getElementById(“varb”).value; var x=a*a+b*b; var c=数学sqrt(x); 如果(a>b){ ay=0 bx=b/a*300 } 否则{ ay=300-(a/b*300) bx=300 } document.getElementById(“a”).innerHTML=a; document.getElementById(“b”).innerHTML=b; document.getElementById(“c”).innerHTML=c; document.getElementById('trianglepoints').setAttribute(“点”,bx+”,300 0300,“+ay); } 确保将
元素.value
返回的字符串值强制转换为数字:


否则,当您比较
a>b
时,它将进行字符串比较,
'1001'
小于
'55'
(首先比较第一个字符)。

a
b
中存储值时,可能更容易使用
parseInt
parseFloat
,这取决于所使用的上下文
a
b
,以及可接受的值。如果将
10em
转换为
10
,然后用作像素值,那么使用
parseInt
,而不是选择使用
isNaN
进行验证检查可能并不直观。最后,为工作选择合适的工具是很重要的。
a = document.getElementById('vara').value;
a = +a;
-or-
a = Number(a);