1

コードで大なり小なり記号 ( < >) を使用すると、間違った結果が返されます。たとえば、2 と 10 を入力すると、2 が大きく、10 が小さくなります。

使用できることはわかってMath.max(a,b)いますが、正しい結果が返されますが、知りたいのは、なぜ間違った結果を返すのですか? 私が間違っている?

これを説明してください。ありがとうございました。(;

コードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
    <title>showing the bigger an smaller number</title>
    <meta charset="utf-8">
    <script>
        function b(){ 
            var a=document.getElementById("a").value;
            var b=document.getElementById("b").value;
            if (a>b){document.getElementById("o").innerHTML="a is bigger : "+a}
            else {if (a<b){document.getElementById("o").innerHTML="b is bigger : "+b}}
        }
        function k(){ 
            var a=document.getElementById("a").value;
            var b=document.getElementById("b").value;
            if (a>b){document.getElementById("o").innerHTML="b is smaller : "+b}
            else {if (a<b){document.getElementById("o").innerHTML="a is smaller : "+a}}
        }
    </script>
    <style>
       small {
           font-family:"Comic Sans MS", cursive;
           color:#666;
       }
       input { 
           height:30px;
           width:175px;
        }
    </style>
</head>
<body>
    <input type="number" id="a" placeholder="type first Number here"></input><b>&nbsp;</b>
    <input  type="number" id="b" placeholder="type second number here"></input>
    <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <button onClick="b();">show me the bigger Number</button>
    <button onclick="k();">show me the smaller Number</button>
    <br><b></b>
    <br><small id="o">&nbsp;</small>
</body>
</html>

私の英語が下手だったらごめんなさい。

4

2 に答える 2

4

値を float として解析してみてください。現時点では、文字列を比較しています:

var a = parseFloat(document.getElementById("a").value),
    b = parseFloat(document.getElementById("b").value);

もちろん、ユーザーが有効な数値以外を入力すると問題が発生します...

于 2013-07-07T10:11:36.320 に答える
2

!=の代わりに (等しくない) または!==(等しくない) 関係演算子を使用できます<>

于 2013-07-07T10:23:06.740 に答える