我在使用简单的JavaScript计算时遇到问题。如果订单价格为25美元或更低,我的文件应该为订单增加1.50美元,如果超过25美元,则增加订单的10%。确切的问题是:
许多公司通常会收取运费和手续费。创建一个允许用户在文本框中输入购买价格的网页,其中包含一个计算运费和处理的JavaScript函数。为脚本添加功能,对于小于或等于$ 25.00的任何购买,增加1.50美元的最低运费和手续费。对于任何超过$ 25.00的订单,将运费和处理的总购买价格加10%,但不包括1.50美元的最低运费和手续费。计算百分比的公式是价格*百分比/ 100.例如,计算50.00美元购买价格10%的公式为50 * 10/100,这导致运费和手续费为5.00美元。确定订单的总成本(购买加运费和处理)后,将其显示在警告对话框中。
这是我的代码:
var price = window.prompt("What is the purchase price?", 0);
var shipping = calculateShipping(price);
var total = price + shipping;
function calculateShipping(price){
if (price <= 25){
return 1.5;
}
else{
return price * 10 / 100
}
}
window.alert("Your total is $" + total + ".");
测试时我在提示框中输入一个数字,而不是像我输入一个数字那样进行计算,而是计算好像我输入了一个字符串。即我输入19,它给我191.5或我输入26,它给我262.6
答案 0 :(得分:2)
使用parseFloat
可以帮助您:
var price = parseFloat(window.prompt("What is the purchase price?", 0))
var shipping = parseFloat(calculateShipping(price));
var total = price +shipping;
function calculateShipping(price){
if (price <= 25){
return 1.5;
}
else{
return price * 10 / 100
}
}
window.alert("Your total is $" + total + ".");
查看工作地点:http://jsfiddle.net/e8U6W/
另外,一个鲜为人知的更有效的方法就是-0
:
var price =window.prompt("What is the purchase price?", 0) - 0;
(参见:Is Subtracting Zero some sort of JavaScript performance trick?)
请务必对此进行评论,但对于那些阅读代码parseFloat
答案 1 :(得分:0)
答案 2 :(得分:0)
实际上,您需要使用parseFloat()
答案 3 :(得分:0)
答案 4 :(得分:0)
有点多余的乘法,但问题是输入的数字被视为字符串,而不是数字。您必须将它们转换为浮点数:
var price = parseFloat(window.prompt("What is the purchase price?", 0));
var shipping = calculateShipping(price);
var total = price + shipping;
function calculateShipping(price)
{
if (price <= 25)
{
return 1.5;
} else {
return price / 10
}
}
window.alert("Your total is $" + total + ".");
答案 5 :(得分:0)
var price = parseFloat(window.prompt("What is the purchase price?", 0));
var shipping = calculateShipping(price);
var total = price + shipping;
function calculateShipping(price){
var num = new Number(price);
if (num <= 25){
return 1.5;
} else{
return num * 10 / 100
}
}
window.alert("Your total is $" + total + ".");
这应该为你做。