使用Javascript进行计算的多个语句
我正在尝试使用Javascript进行计算,它将从一个输入(月薪)到结果(税)进行计算,如下所示:使用Javascript进行计算的多个语句,javascript,html,Javascript,Html,我正在尝试使用Javascript进行计算,它将从一个输入(月薪)到结果(税)进行计算,如下所示: 年收入扣除额(12000) 困难的部分来了,税收是按不同的水平计算的,所以如果年收入在6500到25000之间,税收应该是10%。如果25000之后还有更多的剩余,而少于40000,则应在之前10%的基础上再加15%的税,以此类推 例如如果年产量为60000,则计算如下: 60000 - 12000 = 48000 // deduction 25000 X (10/100) = 250
- 年收入扣除额(12000)
- 困难的部分来了,税收是按不同的水平计算的,所以如果年收入在6500到25000之间,税收应该是10%。如果25000之后还有更多的剩余,而少于40000,则应在之前10%的基础上再加15%的税,以此类推
60000 - 12000 = 48000 // deduction
25000 X (10/100) = 2500 // 10% tax on 6500-25000 range
48000 - 25000 = 23000 // first cut 25000
23000 X (15/100) = 3450 // 15% tax on 25000-40000 range
total tax will be 2500 + 3450 = 5950
代码:
<input type=text id="salary">
<div id="total"></div>
<script>
function calc(){
var salary = document.getElementById('salary').value;
var annual = salary * 12;
var net = annual - 12000;
// Define Tax brackets
var bracket1 = (10 / 100);
var bracket2 = (15 / 100);
if (net >= 6500){
if ( net >= 6500 && net <= 25000 ) {
var tax1 = (net * bracket1);
}
else if ( net >= 30000 && net <= 40000 ) {
var tax2 = (net * bracket2);
}
var result = (tax1 + tax2) / 12; //monthly tax
document.getElementById('total').innerHTML = result ;
}
</script>
函数计算(){
var salary=document.getElementById('salary')。值;
var年=工资*12;
净风险值=年-12000;
//定义税阶
变量括号1=(10/100);
变量括号2=(15/100);
如果(净>=6500){
如果(净值>=6500&&net=30000&&net
算法本身似乎有问题(你可能想回顾一下)
但是,假设我自己做了一些事情,这是可行的
看看你能改进什么
税
函数计算(){
风险值结果,tax1=0,tax2=0;
var salary=document.getElementById('salary')。值;
var年=工资*12;
净风险值=年-12000;
//定义税阶
变量括号1=(10/100);
变量括号2=(15/100);
如果(净>=6500){
如果(net>=6500&&net=30000&&net给出了示例,则此代码可能会帮助您开始学习逻辑
函数计算(){
var salary=document.getElementById('salary')。值;
var年=工资*12;
净风险值=年-12000;
控制台日志(工资、年薪、净额);
//定义税阶
变量括号1=(0.1);
var括号2=(0.15);
var-tax1=0;
var-tax2=0;
var runningNet=net;
如果(净>=6500){
如果(净>=25000){
tax1=2500;//2500*0.10,第1类的最大税额
runningNet=runningNet-25000;
tax2=runningNet*bracket2;//剩余的部分*bracket2
}
否则{
tax1=运行净*括号1;
}
var结果=(parseFloat(tax1)+parseFloat(tax2));
var monthly=result/12;//月税
document.getElementById('total').innerHTML=result;
document.getElementById('monthly')。innerHTML=monthly;
}
}
计算
总数:
每月:
您的函数缺少一个结束括号。在else if(net=30000
中,您可能是指else if(net==30000
您缺少一个结束括号。请确保salary是一个数字,而不是字符串:var salary=parseInt(document.getElementById('salary')。值,10);@puro\u nervio可能需要使用parseFloat()
,因为薪水可能有一个小数部分。也可以使用调试器。每个浏览器中都有一个调试器。如果(net==30000&&net@Teemu-woah,冷静点,牛仔。你真的认为它聪明(独立于语言)吗在特定的if/else
语句中声明var
?不,这并不聪明,您已经在代码中正确地解决了这个问题,但解释显然是错误的。@Teemu是的,这是我的错,我的意思是“globals”.作为一个更大的scopeWell,@Kareem,你可能不想读这个anwser:@Teemu别担心,它也不是我的。而且我没有标记它,你似乎很有道理:)。和平。
<html>
<head>
<title>TAX</title>
</head>
<script type="text/javascript">
function calc(){
var result, tax1 = 0, tax2 = 0;
var salary = document.getElementById('salary').value;
var annual = salary * 12;
var net = annual - 12000;
// Define Tax brackets
var bracket1 = (10 / 100);
var bracket2 = (15 / 100);
if (net >= 6500) {
if (net >= 6500 && net <= 25000) {
tax1 = (net * bracket1);
}
else if (net >= 30000 && net <= 40000) {
tax2 = (net * bracket2);
}
result = (tax1 + tax2) / 12; // monthly tax
}
document.getElementById('total').innerHTML = result;
console.log(result);
}
</script>
<body>
<input type=text id="salary" onblur="calc();" value="0" />
<div id="total"></div>
</body>
</html>