1

以下のスクリプトでは、戻り値に表示される小数点が多すぎます

また、コードを自分の Web サイトに投稿したときに、追加したすべてのテキスト スタイルが表示されませんでした。

何が欠けているのか教えてください。

ありがとう

<html>

    <head>
    <style>
            body {color:rgb(128,128,128);}
            p.3 {color:rgb(128,128,128);}
            p.3 {font-size:20PX;}
    </style>

    <script type = "text/javascript">

    function convert() {
        var Amount=document.getElementById('amount');
        var Currency=document.getElementById('currency');
        var Converted=document.getElementById('converted');
        var Choice=document.getElementById('choice');
        var AED=1;
        var US=0.27;
        var QR=0.99;
        var SR=1.02;
        var KD=0.0778;
        var BD=0.102;

        switch(document.converter.currency.value) {
            case "US Dollars" :
                document.converter.converted.value=US*document.converter.amount.value;
                document.converter.choice.value=document.converter.currency.value;
            break;
            case "Qatar Riyal":
                document.converter.converted.value=QR*document.converter.amount.value;
                document.converter.choice.value=document.converter.currency.value;
            break;
            case "Saudi Riyal":
                document.converter.converted.value=SR*document.converter.amount.value;
                document.converter.choice.value=document.converter.currency.value;
            break;
            case "Kuwaiti Dinar":
                document.converter.converted.value=KD*document.converter.amount.value;
                document.converter.choice.value=document.converter.currency.value;
            break;
            case "Bahrain Dinar":
                document.converter.converted.value=BD*document.converter.amount.value;
                document.converter.choice.value=document.converter.currency.value;
            break;
        }
    }
    </script>

    </head>

    <body>
        <div id="divWrapper">
        <form name="converter" id="converter">
        <br/> Enter amount in UAE Dirhams
        <input name="amount"type="text" id="amount" size="3" />
        <br /><br /> 
        Please Select a currency <select name="currency" id="currency">
        <option>Select one</option>
        <option value="US Dollars">US Dollars</option>
        <option value="Qatar Riyal">Qatar Riyal</option>
        <option value="Saudi Riyal">Saudi Riyal</option>
        <option value="Kuwaiti Dinar">Kuwaiti Dinar</option>
        <option value="Bahrain Dinar">Bahrain Dinar</option>
        </select> 

        <input type="button" name="convt" id="convt" onclick="convert()" value="Convert" />
        <br /><br /> 
        <p class="3"> The amount is:
        <input name="converted" type="text" id="converted" style="border:0px" style="color:rgb(255,0,102)" style="text-align:center" style="font-size:22PX"  value="" size="5"/>
        in 
        <input name="choice" type="text" id="choice" style="border:0px" style="color:rgb(255,0,102)" style="font-size:22PX" style="text-align:center" value="" size="10"> </p>

        <br /><br />
        </form>
        </div>
    </body>

</html>
4

2 に答える 2

1

Javascript/Decimals について

tschulzeが述べたように、小数点以下 2 桁に四捨五入する場合は、この.toFixed()関数を使用する必要があります。

これを現在の構造に組み込む方法は次のとおりです (各 case ステートメントに対して同様のことを行う必要があります)。

document.converter.converted.value=(BD*document.converter.amount.value).toFixed(2);
document.converter.choice.value=document.converter.currency.value;

スタイリングについて

スタイリングで発生している問題は、複数のスタイル属性があるためです。複数のスタイルを適用する正しい方法は、セミコロンで区切って、1 つのスタイル属性内に設定するさまざまな側面をすべて含めることです。

<input name="converted" type="text" id="converted" style="border:0; color:rgb(255,0,102); text-align:center; font-size:22PX;" value="" size="5"/>

その他の注意事項

単一のセット乗数を持つ構造に切り替えて、適切な場合に適用するものを選択するだけで、コードを本当に単純化できるようです。

function convert() {
    var Amount=document.getElementById('amount');
    var Currency=document.getElementById('currency');
    var Converted=document.getElementById('converted');
    var Choice=document.getElementById('choice');
    var multiplier=1;

    switch(document.converter.currency.value) {
        case "US Dollars" : multiplier=0.27; break;
        case "Qatar Riyal": multiplier=0.99; break;
        case "Saudi Riyal": multiplier=1.02; break;
        case "Kuwaiti Dinar": multiplier=0.0778; break;
        case "Bahrain Dinar": multiplier=0.102; break;
    }
    
     document.converter.converted.value=(multiplier*document.converter.amount.value).toFixed(2);
     document.converter.choice.value=document.converter.currency.value;
}
于 2013-04-25T13:39:53.553 に答える
1

JavaScript のみ:

数値を小数点以下の固定数にフォーマットする場合は、呼び出します

.toFixed()

その上で。

例えば:

var i = 3.4444

var num = i.toFixed(2) //num = 3.44, but as a string

詳細については、こちらを参照してください: Mozilla Developer NetworkECMAScript 仕様

于 2013-04-25T13:31:46.100 に答える