代码中我们分别将两条输入语句的值进行了 Number()或者 parseFloat(),然后进行求和。

初学者错误地将代码写成这样:

var a = prompt("请输入第 1 个数字");

var b = prompt("请输入第 2 个数字");

var result = Number(a + b);

alert(result);

程序将两条 Number()语句合并写在了一起,这是错误的。因为语句 Number(a + b)会先计算内部 a + b

的值,此时是两个字符串相加,比如 1+2 将得到字符串“12”。再进行 Number()转换,也只能将字符串“12”

变为数字 12,已经于事无补了。

写程序的时候,要非常清晰程序会如何执行,避免书写类似的错误。

将程序改为这样,是正确的:

var a = prompt("请输入第 1 个数字");

var b = prompt("请输入第 2 个数字");

var result = Number(a) + Number(b);

alert(result);

只要确保在加和之前,将两个字符串变为数字,程序都是正确的。

案例描述

我国普遍使用摄氏温度,一些国家使用华氏温度。它们的转换关系如下:

华氏温度 = 9 × 摄氏温度 ÷ 5 + 32

请编写 JavaScript 程序,让用户输入摄氏温度,显示对应的华氏温度,计算结果四舍五入到小数点后 1

位。

如何四舍五入

编程思路非常简单:用 prompt()弹出输入框,提示用户输入摄氏温度,然后进行计算,最后弹出结果。

但是结果要求四舍五入到小数点后 1 位,应该怎么办呢?

Math 对象提供了 round()方法可以将一个数字四舍五入,例如:

var a = 36.85;

var b = Math.round(a);

alert(b);

那如果我们想将数字四舍五入到小数点后一位,即将 36.85 四舍五入为 36.9,应该怎么办呢?

这里就要使用一个数学的小技巧:我们可以将 36.85 先乘以 10,变为 368.5;然后四舍五入,变为 369;

继续除以 10,最终变为 36.9。这就完成了四舍五入到小数点后 1 位的操作。

根据这个思路,书写代码:

var a = 36.85;

var b = Math.round(a * 10) / 10; //四舍五入到小数点后一位

alert(b);

程序运行结果符合预期

案例代码

我们已经解决将数字如何四舍五入到小数点后 1 位,现在题目“华氏温度转为摄氏温度”就已经迎刃而解了。

代码如下:

//第 1 步,让用户输入摄氏温度并转为数字

var c = Number(prompt("请输入摄氏温度"));

//第 2 步,计算

var f = 9 / 5 * c + 32;

//第 3 步,对结果进行四舍五入到小数点后 1 位

f = Math.round(f * 10) / 10;

//第 4 步,显示

alert("对应的华氏温度是" + f);

运行程序,首先会弹出输入框要求用户输入摄氏温度

例如我们输入数字 26,点击确定按钮后,会弹出对应的华氏温度,并且结果是四舍五入到小数点后 1 位的。