注册 登录
编程论坛 J2EE论坛

为什么输入值超过84000就不能计算了呢?

qjw9004 发布于 2011-09-20 21:43, 799 次点击
当我在表单文本框jbgz中输入超过84000就不能计算了呢?
百思不得其解~~~切望朋友指点~~~
(该公式是计算个税的,如有那位朋友有更好的代码提供,那真是不胜感激了!~~
<script language="javascript">
    function gz_zc()
    {
       var j7 =form1.jbgz.value;
       var j8 =form1.jbf.value;
       var j9 =form1.jj.value;
       var j10 =form1.hsbz.value;
       var j11 =form1.qtdk.value;
       var j12 =form1.kqkk.value;
      
       var j14 =form1.jbylj.value;
       var j15 =form1.syj.value;
       var j16 =form1.ylbx.value;
       var j17 =form1.zfgjj.value;
       var j18 =form1.tax_gr.value;
       var j19 =form1.qtkk.value;
       var j20 =form1.dkhs.value;
       form1.yfgz.value =(j7*1+j8*1+j9*1+j10*1+j11*1-j12*1).toFixed(2);
       var tax_gz =form1.yfgz.value-(j14*1+j15*1+j16*1+j17*1)-3500
       try
       {
    if(tax_gz>80000){output=cha*0.45-13505;}
    else if(tax_gz>55000){output=tax_gz*0.35-5505;}
    else if(tax_gz>35000){output=tax_gz*0.30-2755;}
    else if(tax_gz>9000){output=tax_gz*0.25-1005;}
    else if(tax_gz>4500){output=tax_gz*0.2-555;}
    else if(tax_gz>1500){output=tax_gz*0.1-105;}
    else if(tax_gz>0){output=tax_gz*0.03;}
    else{output=0;}
    if (output>0){
    form1.tax_gr.value =output.toFixed(2);
    }
    else{
    form1.tax_gr.value =0
    }
           form1.dkxj.value =(j14*1+j15*1+j16*1+j17*1+j18*1+j19*1+j20*1).toFixed(2);
           form1.sfgz.value =(form1.yfgz.value-form1.dkxj.value).toFixed(2);
       }
       catch(e){;}
    }
</script>
4 回复
#2
qjw90042011-09-22 07:52
有高人能帮看一下吗?
#3
qjw90042011-09-23 17:48
没人能帮支招吗?
#4
2011-09-24 16:01
int类型是有一定限制的
你可以用导入
import java.math.BigInteger;
BigInteger有很多计算的方法,都是字符串类型的
不会有越界了,这样你就可以随便计算了!
建议LZ下回,给点分!!!
要不就没人喜欢回答你的问题了
#5
qjw90042011-09-25 22:36
回复 4楼 付政委
好的~~谢谢!~~~
能否说详细点吗?刚入门太菜了~~
1