2

我正在练习练习并遇到了这个问题。

这个问题问:

“提示输入大于 1 且保留 4 位小数的数字。使用 toFixed() 方法将数字格式化并写入显示的页面,仅显示小数点后 2 位数字。(例如 12.35,而不是 12.3453)

由于此方法非常新,因此在旧浏览器中不起作用。看看你是否可以在不使用 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);

该练习没有要求第二个数字,但我想在不同的事件中使用这两种方法。当我运行它时,它不会发出任何警报。我知道它挂在 toFixed 语句上,因为当我将其注释掉时,它会按预期提示 num1 的小数点后 2 位和提示的 num2(即 1.2345)。

所以这是我到目前为止所做的:

Mozilla 的开发者页面显示这种格式:n.toFixed(1);// Returns "12345.7": note rounding

似乎正是我在做什么。

我将所有内容复制并粘贴到我的 Sublime 中,确保我在结束 body 标记之前调用了 .js 文件,以确保它不是我不理解的加载问题。

加上各种小调整。

很抱歉一直问这些问题,但是由于我是自学的,我还有其他地方可以去!

4

1 回答 1

3

你需要使用parseFloat. 使用该函数会将字符串转换为浮点类型变量,从而使toFixed函数能够正常工作。

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