【发布时间】:2013-11-06 05:00:52
【问题描述】:
我有这个代码:
double timeTillTick = 15.0;
private void lower_Tick(object sender, EventArgs e)
{
if (timeTillClear > 0)
{
timeTillClear -= 0.1;
clearingIn10SecondsToolStripMenuItem.Text = "Clearing in " + timeTillClear + " seconds.";
}
else
{
lower.Enabled = false;
}
}
每 100 毫秒降低一次滴答声。什么时候:
- 到达 8
- 达到 5
- 到达 1
它增加了0.000000000000001。为什么?
【问题讨论】:
-
我们可以使用
decimal来保持浮点数准确(称为定点数) -
@Aniket 谢谢!我认为 double 是小数。
-
@chipperyman573
double是浮点十进制,而decimal是定点十进制。 -
@Aniket
decimal不是定点的。double是浮点二进制(base-2),decimal是浮点十进制(base-10)
标签: c# floating-point double ieee-754 floating-point-precision