选择列表选项有一些意外的值

时间:2012-07-17 12:31:55

标签: c# javascript jquery

我正在生成用于设置stroke-opacity的selectlist选项,例如:

<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。可以请任何人告诉我这里发生了什么?

enter image description here

2 个答案:

答案 0 :(得分:3)

尝试使用decimal代替doubleSince double is a floating-point number, it can lose precision

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

答案 1 :(得分: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>