![mt4 bag.png](mt4 bag.png)
>質問
tick が動くたびに 0.01 を足して出力しているのですが、途中で0.07ではなく、0.0700000001 といったバグがでてきます。
>行ったこと
調べたところ小数点を指定したらよいとでてきたのですが、、NormalizeDouble や DoubleToStringを使っても同様の0.0000001 バグが出てきます。どうしたら解決できますでしょうか? 優秀なゴゴジャン先生、ぜひ教えてください。
コード
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],
const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{
static double count ;
count = count + 0.01 ;
//count = NormalizeDouble( count , 2 );
count = DoubleToString( count , 2 );
Alert( count );
return(rates_total);
}
検索結果がありません。 |
検索結果がありません。 |
小数計算の誤差つきましては、他の言語でも発生しますが
表示に関する部分に関しましては、MT4の仕様でございますのでわかりかねます。
下記のように出力した場合も、同様の表示となりました。
表示は、上記のようになりましたが
比較については、下記式で
OK
と表示されましたので判定は問題ないかと存じます。別件で、下記結果も若干異なる状況でございましたが
*2
の場合は正しく表示されている状況でございました。ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。