2011-01-12 16 views
0

浮動小数点数を増やすのに最適なロジック/方法を誰も説明できますか?例えば10進数、浮動小数点数を増やす

我々は小数を開始すると仮定した場合、次の項目が自動的に2.11、2.10、2.09、.....、2.01、2.02、2.03を言うに応じて番号を取得する必要がありますので、2.0 ..ですなど

しかし、開始番号は2.1なので、次のシーケンスは何でしょうか:

それはどうですか? 2.11,2.12,2.13,2.14、...... 2.19,2.20など...?

私は論理的に正しいですか?私は混乱しています。助けてください。

+2

ここでは「最適」はありません。 (また、完全にはっきりしていない - 真の10進浮動小数点型を使用していますか?このようなものに2進浮動小数点型を使用しないでください) –

+0

はい。私は自分のアプリケーションが上記と同じシーケンスを必要としていることに気付きました。私は解決策を得た。ご協力いただきありがとうございます。 – user458135

答えて

2

これは、アプリケーションが必要とするものに完全に依存します。百分の一を数える必要がありますか?もしそうなら、それらの配列は意味をなさない。

丸め誤差を回避するには、のように、初期値、増分の数、および増分サイズを保存することもできます。float値の増分が行われる必要があります

 float start = 2.0; 
     float increment = 0.01; 

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

はい。これはまさに私が探していたものです。私のアプリケーションは私の投稿に描いたのと同じシーケンスが必要です。ダニエルありがとう。 – user458135

-1

あなたが表現しようとしているものによって任意に定義されると思います。たとえば、ソフトウェアバージョンでは、7.9,7.10,7.11などを使用しても問題ありません。7.10が7.9より大きいことがわかります。もちろん、彼らに特別な扱いを与えると、デフォルトの算術演算は適用されません。

+1

7.10が7.9より大きいか?どうして? –

+0

7.10は7.9以降にリリースされたバージョンです。 – Marcelo

-1

は」インクリメント演算子によって "。 しかし、インクリメント演算子は10進数の前の数字に対してのみ機能するため、このことはできません。浮動小数点数にインクリメント演算子が適用されている場合、値シーケンスは0.1,1.1,2.1,3.1などです。

関連する問題