这是我的代码
var fifty = prompt("Enter amount ");
var twenty;
alert(twenty=parseInt(fifty/50) + " x " + "50 dollar bill");
alert(parseInt(twenty/20) + " x " + "20 dollar bill");
我要数的是美元钞票。 例如,当我输入“120”时,它应该返回 2x 50 钞票和 1x 20 美元钞票,我知道返回值是 String 类型,所以我将它们转换为数字,但在 20 美元钞票上它返回“Nan x 20 dollar bils”我无法理解为什么
最佳答案
请停止使用 parseInt
来分隔浮点值的整数部分,仅将其用于将字符串转换为整数。当您使用 parseInt
时,浮点值被转换为字符串,然后解析回一些整数,可能会出现 float 被转换为字符串的情况,如 5.1234E-6
和 parseInt
在这种情况下将返回 5
。请改用 Math.floor()
。
var sum = parseInt(prompt("Enter amount "));
var twenty = Math.floor(sum/50);
alert(twenty + " x " + "50 dollar bill");
alert(Math.floor((sum - (twenty*50))/20) + " x " + "20 dollar bill");
关于javascript - 转换后的 Int 返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33521015/