2011-01-12 138 views
0

任何人都可以解释增加浮点数的最佳逻辑/方法吗?增量小数点,浮点数

例如,如果我们假设开始的十进制数是2.0,那么接下来的项应该会自动得到相应的数字,比如说2.01,2.02,2.03,......,2.09,2.10,2.11 ..等等

但是起始数字是2.1,那么下一个序列是什么:

是吗? 2.11,2.12,2.13,2.14,...... 2.19,2.20等...?

我在逻辑上正确吗?我很困惑。请帮忙。

+2

这里没有“最佳” - 这取决于您的要求是什么。 (另外,还不完全清楚 - 你使用的是真正的十进制浮点类型吗?不要使用二进制浮点类型来实现这样的功能。) – 2011-01-12 07:17:17

+0

是的。我意识到我的应用程序需要与我上面发布的完全相同的序列。我得到了解决方案。谢谢你的帮助。 – user458135 2011-01-12 09:23:10

回答

2

这完全取决于应用程序的需求。你需要以百分之一计算吗?如果是这样,那么这些序列是有意义的。

为了避免舍入误差,可能需要存储初始值,增量的数量和增量大小,如:

 float start = 2.0; 
     float increment = 0.01; 

     for (int i = 0; i < 10; i++) 
     { 
      printf("%f ", start + increment * i); 
     } 
-1

我认为它会被你试图代表的东西来任意定义。例如,在软件版本中,可以有7.9,7.10,7.11等,并且您仍然会知道7.10大于7.9。当然,你会给他们一个特殊的处理,默认的算术不适用。

+1

7.10是否大于7.9?怎么来的? – 2014-01-29 16:06:48

-1

“浮点值的增量应该做的事由增量运营商“。 但是这个东西是不可能的,因为增量运算符只适用于十进制数字前面的数字。如果增量运算符应用于float,则值序列为0.1,1.1,2.1,3.1等。