-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 に答える