abolk:
0.02*4.9=0.098 -- 0.98ではない
小数点以下2桁で出力 -- 0.098は四捨五入の規則に従い0.10に丸められ出力されます。
出力が3桁の場合 -- 全体の数字が出力されます。
ありがとうございます、数字を訂正しました。
それが問題で、小数点以下2桁を取らなければならないのです。:)なぜ丸みを帯びているのか?四捨五入せず、小数点以下2桁だけ(0.09)の分数を取るにはどうしたらよいでしょうか?
WePlexus:
文字列に変換して桁数を取る
ありがとうございます、数値を修正しました。
それが問題で、小数点以下2桁を取らなければならないのです。:)なぜ丸みを帯びているのか?四捨五入せず、小数点以下2桁だけ(0.09)の分数を取るにはどうしたらよいでしょうか?
WePlexus:
ありがとうございます、数値を修正しました。
それが問題で、小数点以下2桁を取らなければならないのです。:)なぜ丸みを帯びているのか?四捨五入せず、小数点以下2桁だけ(0.09)の分数を取るにはどうしたらよいでしょうか?
int a=int(0.098/0.01); double b=a*0.01; Comment(DoubleToString(b,2));
sanyooooook:
を文字列に変換し、必要な文字数を取る。
もっと簡単な方法を知らないのか?
を文字列に変換し、必要な文字数を取る。
Vinin:
もっと簡単な方法をご存知ですか?
ヒントを教えてください。:)
もっと簡単な方法をご存知ですか?
valeryk:
そして、もしそうなった場合。
int a=int((0.09*5)/0.01); double b=a*0.01; Comment (DoubleToString (b,2));
必要な0.45ではなく、0.44と出力される。
WePlexus:
そして、もしそうなった場合。
必要な0.45ではなく、0.44と出力される。
int a=int(MathFloor((0.98)/0.001)); double b=a*0.001; Comment(DoubleToString(b,2));
valeryk:
0.98ではなく、0.098です。:)
int a = int (MathFloor ((0.098) / 0.001)); double b = a * 0.001; Comment (DoubleToString (b, 2));
1を返し、正確な値=0.09を求めました。
Vinin:
もっと簡単な方法をご存知ですか?
もっと簡単な方法をご存知ですか?
というのが最初に思い浮かびました。もちろん、もっとシンプルなものもあります。
これも複雑ではないですが、もしかしたら遅いかもしれませんね。
int DIGITS=2; string stroka=DoubleToString(0.09845,8); int P=StringFind(stroka,"."); Print(stroka); stroka=StringSubstr(stroka,0,P+DIGITS+1); Print(StringToDouble(stroka)); возвращает: 2014.10.04 11:32:53.731 normalize EURUSD,H4: 0.09 2014.10.04 11:32:53.731 normalize EURUSD,H4: 0.09845000
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
ごあいさつ困っていることがあるので助けてほしい。
すべての関数は 0.1 を返します。(0.02*4.9) = 0.098となり、0.09を返すはずですが。
電卓に表示される正確な値を求める方法を教えてください。:)