0

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

<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

尝试使用类型 ofdecimal而不是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 回答