正確な」値を得ることは可能でしょうか? - ページ 6

 
abolk:

この問題を解くには、0.09*5は=0.4499999999ではなく、=0.45でなければならない。

であり、それが存在しなければ、問題は解決できない。

0.09*5=0.45 )

数え切れない)

 
sanyooooook:

0.09*5=0.45 )

数え方を知らないんだろう(笑)

その通り、MQLで「その」仕事をしているからこそ、0.45ではなく0.44をカウントするという例が出た。私はこの言語には詳しくないのですが、なぜ大きな数字が切り取られるのか、つまり限界を超えると丸くなるのに、切り取られないのか、不思議です。正確な文字列のトリミング」方法、たぶん上に引用したものがMQLで使えるようになれば最高ですね。:)
 
WePlexus:
その通り、MQLの仕組み上、0.45ではなく0.44とカウントされる例がありました。言語を熟知しているわけではありませんが、なぜ大きな数字が切り取られるのか、つまり、数字が限界を超えると切り取られるのではなく、四捨五入されるのか、不思議な感じがします。正確な文字列のトリミング」方法、たぶん上に引用したものがMQLで使えるようになったら最高ですね。:)
というのも、数学では小数点以下の桁数を削除したい場合、値を丸めるのが一般的だからです。
 
sanyooooook:
というのは、数学では小数点以下の桁数を削除する場合は、値を丸めるのが一般的だからです。
ミュードロ
 
よろしくお願いします。
 
つねに
 
WePlexus:
言語を熟知しているわけではありませんが、なぜ大きな数字が切り取られるのか、つまり、数字が限界を超えると切り取られるのではなく、四捨五入されるのか、不思議な感じがします。正確な文字列のトリミング」方法、おそらく上に引用したものがMQLで使えるようになれば最高です。:)
それで、「正確なトリミング」がどのように役立つのか理解できたのです。まあ、問題が解決した満足感や正当な誇りは別としてね :) 。
 
切り上げが容易
 
abolk:

これは正規化が行われる最大数である。

あと1つ9を取れば、0.02に正規化されます。

でも、私の機能で 大丈夫です。

Normalize ("0.01999999999999999999999999999999", 6)

0.019999と出力されます。そして、その数字を正しい型に変換して、計算することができます。

引用符を付けずに数値を渡すと、結果は0.02になります。

 
WePlexus:

問題を解決する方法はいくつかありますが、それぞれにメリットとデメリットがあり、結果を得る精度やスピードの面でも異なります。

浮動小数点数の扱いには独特の癖があり、それを理解する必要があります。