下面是一个简单的循环,基数为1.0,每次增量0.1,但我在调试时发现每次增加0.1时,它并不等于1.1,1.2,1.3(可能是1.1000000007),C#的double精度的确有这个问题,但我想保持准确的精度,循环变量保持在1.0,1.1,1.2,1.3,1.4。
但我不知道该如何控制。
在这里的问题就是1.0 + 0.1 != 1.1是成立的。
for (double cur = 1.0; cur <= 1.4; cur += 0.1)
{
// Do Something
}
但我不知道该如何控制。
在这里的问题就是1.0 + 0.1 != 1.1是成立的。
for (double cur = 1.0; cur <= 1.4; cur += 0.1)
{
// Do Something
}
解决方案 »
- 请问,如何按button使得listBox的选定项上下移动
- 网页上flash的http请求中乱码的问题
- c#生成XML文件时,设置节点的xsi:type属性问题
- Calendar1 日历控件移动位置(web程序)
- 急,请教问题!(字体样式怎么叠加?)
- 如果web.config配置里面有两个对SQLSERVER数据库的连接,请问如何配置
- 请问用C#去操作word文档, 怎么能删除word文档中 某一个书签 代表的一段内容呢? 找了几天了,还没找到好的方法,我粘些代码,向大家请教
- 如何让窗体在用户按任意键或动鼠标时关闭啊?
- 向服务器POST数据(参数+文件)
- 如何用VC#访问邮件服务器的地址列表?
- 发生未运行的.net framework 异常
- C# 有什么方法可以离开窗体显示图片?
double j = i + 0.1;
double k = j + 0.1;
-----------------------
j可能不等于1.1,k可能不等于1.2
--------------------------------------------
double i = 1.0d;
double j = i + 0.1d;
double k = j + 0.1d;k已经不等于1.2了。
for (decimal d = 1.0m; d <= 1.4m; d += 0.1m)
{
Console.WriteLine(d);
}