MT4のEA, Lots=0.07について

コメントを加えるため、ログインしてくださいまたは登録するをしてください
miyabi_white
23
miyabi_white  

Print()関数でLotsがいくつなのかを表示しています。

tic = OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lots * (1 + lot_up),2),Bid,Slippage,0,0,"sell",MagicNumber,0,Red);//lot_upは0.1など少数点一桁の数が入ってくる(-0.9<lot_up<0.9)
bool tic_flg  = OrderSelect(tic,SELECT_BY_TICKET);
if(tic_flg)Print((string)(NormalizeDouble(OrderLots(),2));

でここからが問題なのですが

0.01,0.02,0.03,0.04...と普通に表示されますが0.07のみ「0.07000000000000001」と表示されます。

NormalizeDoubleが効かないのですがなにか対策などは出来るのでしょうか?

同様の事象が起きることが確認できているのは0.56です

Renjun Gu
296
Renjun Gu  

int  newlots= (int )(Lots * (1 + lot_up)*100);

tic = OrderSend(Symbol(),OP_SELL, newlots*0.01,Bid,Slippage,0,0,"sell",MagicNumber,0,Red);

bool tic_flg  = OrderSelect(tic,SELECT_BY_TICKET);if(tic_flg)Print((string)(newlots));

コメントを加えるため、ログインしてくださいまたは登録するをしてください