我正在生成用于设置描边不透明度的选择列表选项,例如:
<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
。有人可以告诉我这里发生了什么事吗?
最佳答案
尝试使用decimal
类型而不是double
。 Since 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>
关于c# - 选择列表选项有一些意想不到的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11522502/