-3

我有这个计算器根据销售额计算估计溢价。它工作正常,除了当我达到 99,000 以上时,它突然开始计算我为 24,999 及以下定义的恒定速率。有谁知道为什么会发生这种情况?这是代码。

function updatesurchargetotal() {
    document.rater.surchargetotal.value = (document.rater.subtotaltotal.value -0) * (document.rater.surcharge.value -0);
}
function updatepremium() {
    document.rater.premium.value = (document.rater.subtotaltotal.value -0) + (document.rater.surchargetotal.value -0);
}
function updatetax() {
    if (document.rater.state.value=="8" || document.rater.state.value=="29") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="32" || document.rater.state.value=="42") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="6") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="35" || document.rater.state.value=="36" || document.rater.state.value=="37" || document.rater.state.value=="47" || document.rater.state.value=="52" || document.rater.state.value=="56") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="13") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="50") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="18" || document.rater.state.value=="21" || document.rater.state.value=="24" || document.rater.state.value=="23" || document.rater.state.value=="22" || document.rater.state.value=="28" || document.rater.state.value=="34" || document.rater.state.value=="38" || document.rater.state.value=="39" || document.rater.state.value=="46" || document.rater.state.value=="55") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="30" || document.rater.state.value=="40") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="3") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="10") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="26" || document.rater.state.value=="31" || document.rater.state.value=="53") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="5" || document.rater.state.value=="15" || document.rater.state.value=="16" || document.rater.state.value=="49") {
    document.rater.tax.value = 0;
    }
    else if (document.rater.state.value=="27" || document.rater.state.value=="33" || document.rater.state.value=="45" || document.rater.state.value=="48") {
    document.rater.tax.value = 0;
    }
    else {
    document.rater.tax.value = 0;
    }
}
function updatetaxtotal() {
    document.rater.taxtotal.value = (document.rater.tax.value -0) * (document.rater.premium.value -0);
}
function updatetotal() {
    document.rater.total.value = Math.round(((document.rater.premium.value -0) + (document.rater.taxtotal.value -0) + 0) * 100)/100;
}

//SALES FUNCTIONS

function updatesalespremium() {
    if (document.rater.sales.value > "0" && document.rater.sales.value <= "24999") {
    document.rater.sales_premium.value = (525)
    ;
    }
    else if (document.rater.sales.value > "24999" && document.rater.sales.value <= "50000") {
    document.rater.sales_premium.value = (document.rater.sales.value / 1000)*25;
    }
    else if (document.rater.sales.value > "50000" && document.rater.sales.value <= "65000") {
    document.rater.sales_premium.value = (document.rater.sales.value / 1000)*25;
    }
    else if (document.rater.sales.value > "65000" && document.rater.sales.value <= "80000") {
    document.rater.sales_premium.value = (document.rater.sales.value / 1000)*25;
    }
    else if (document.rater.sales.value > "80000" && document.rater.sales.value <= "95000") {
    document.rater.sales_premium.value = (document.rater.sales.value / 1000)*25;
    }
    else if (document.rater.sales.value > "95000" && document.rater.sales.value <= "120000") {
    document.rater.sales_premium.value = (document.rater.sales.value / 1000)*25;
    }
    else {
    document.rater.sales_premium.value = (document.rater.sales.value / 1000)*25;
    }
}
function updatesalespremium2() {
    if (document.rater.sales_premium.value>=100) {
    document.rater.sales_premium2.value = document.rater.sales_premium.value;
    }
    else {
    document.rater.sales_premium2.value = 100;
    }
}
function updatesalestax() {
    document.rater.sales_tax.value = Math.round((document.rater.sales_state.value) * (document.rater.sales_premium2.value) * 100)/100;
}
function updatesalestotal() {
    document.rater.sales_total.value = Math.round((((document.rater.sales_premium2.value -0) + (document.rater.sales_tax.value -0)) + 650) * 100)/100;
}
4

1 回答 1

3

您正在比较字符串,就像它们是数字一样。当您比较字符串时,它们会按字母顺序进行比较。确实如此"11111111" < "90",因为“1”的字母值小于“9”的字母值。

删除"数字周围的文字将导致其他值也转换为数字,并且数字规则将用于大小比较。

于 2013-01-10T20:34:23.390 回答