2

私は練習問題を取っていますが、この問題に遭遇しました。

この問題は尋ねます:

「小数点以下1桁から4桁までの数字を入力してください。toFixed()メソッドを使用して、小数点以下2桁で表示されているページに数値をフォーマットして書き込みます。(例:12.3453ではなく12.35)

この方法は非常に新しいため、古いブラウザでは機能しません。toFixed()を使用せずに、小数点を2桁超えて表示できるかどうかを確認してください。」</ p>

私はここのアーカイブ、Math.round(n * 100)/100を通して難しい部分への答えを見つけました。それをありがとう。しかし、「簡単な」方法を試しても、何も得られません。私の仕事はjsFiddleにありますが、一言で言えば:

var num = prompt("Give me a number greater than one, with 4 decimal places.");
var num2 = prompt("Great! Do one more, please!");


num = Math.round(num*100)/100;
num2 = num2.toFixed(2);


alert(num);
alert(num2);

演習では2番目の数値を要求しませんでしたが、両方の方法を別々の発生率で使用したかったのです。これを実行しても、何も警告されません。toFixedステートメントでハングしていることはわかっています。コメントアウトすると、期待どおりに、小数点以下2桁のnum1と、プロンプトが表示されたときのnum2(つまり、1.2345)の両方にアラートが表示されるためです。

これが私がこれまでに行ったことです:

Mozillaの開発者ページは次の形式を示しています:n.toFixed(1); //「12345.7」を返します:丸めに注意してください

まさに私がしているようです。

すべてをコピーしてSublimeに貼り付け、bodyタグを閉じる直前に.jsファイルを呼び出して、理解できない読み込みの問題がないことを確認しました。

それに加えて、あらゆる種類の小さな調整。

これらの質問を続けて申し訳ありませんが、私は自習しているので、他に行く場所があります!

4

1 に答える 1

3

を使用する必要がありますparseFloat。この関数を使用すると、文字列が float 型の変数に変換され、toFixed関数が正しく機能するようになります。

num2 = parseFloat(num2).toFixed(2);
于 2012-12-26T18:43:31.660 に答える