2011-01-12 135 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等。