任意の小数を正確な小数(323527/4362363のようなもの)に変換するのではなく、簡単に識別できる一般的な1/2,1/4,1/8などの量)10進数を「かなり」の小数に変換するための最適化アルゴリズム
if-then、equal/equal toなどの比較を使用する以外に、これを行うための最適化手法がありますか?
編集:私の特定のケースでは、近似値は許容されます。私の使用例では0.251243〜0.25 = 1/4 - ということが考えられます。これは "十分に良い"ことです。後者は、人間の読みやすさの観点からは、速いインジケータ(計算には使用せず、単にディスプレイの数値として使用します)
あなたの質問は曖昧です。どのように人間の可読性を定義しますか?さらに重要なのは、人間が読める同等の形式がない場合はどうでしょうか?あなたは近似を許可しますか?私は個人的には、近似に頼ることなく、あなたの例題323526/4362363を人間が読める形式で書く簡単な方法は見当たりません。 –
近似は許容されます - 4桁の10進数の精度は十分です。 – ina
どちらかの数字の長さだけでは、人間が判読できるものがあります。一般に「1/x」という形式の小数は* easy *ですが、「4/85」は単なる奇妙なもので、「1/41」と表現する方がよいでしょう。もちろん、 "1/x"ファミリは0.5より小さい数ではうまく働き、大きな損失を意味する0.4を使って近似すると、おそらく百分率表現で十分でしょうか? –