0

次のように、ストロークの不透明度を設定するための選択リストオプションを生成しています。

<label for="so">
    Stroke-opacity :</label>
<select id="so">
    @for (double i = 1; i >= 0; i-=0.1)
    {
        <option value="@i">@i</option>
    }
</select>

私の問題は、最後のオプション(値0が必要)に予期しない値が含まれていることです1.38777878078145E-16。誰かがここで何が起こっているのか教えてもらえますか?

ここに画像の説明を入力してください

4

2 に答える 2

3

decimalの代わりにのタイプを使用してみてくださいdoubleは浮動小数点数であるため、精度が低下する可能性がありますdouble

<label for="so">
    Stroke-opacity :</label>
<select id="so">
    @for (decimal i = 1M; i >= 0M; i-=0.1M)
    {
        <option value="@i">@i</option>
    }
</select>
于 2012-07-17T12:36:02.303 に答える
0

これを試して

<select id="so">

<option value="1">1</option>
@for (int i = 9; i > 0; i--)
{
    string value = string.Format("0.{0}", i);

    <option value="@value">@value</option>
}
</select>
于 2012-07-17T12:43:47.673 に答える