Как получить значение последних трёх цифр от Bid

 

Bid = 1.22509

Нужны последние 3 ( 509 в виде целого числа int)

 
Dark Kchlyzov:

Bid = 1.22509

Нужны последние 3 ( 509 в виде целого числа int)

DoubleToString -> StringSubstr -> StringTointeger

 
int x=(int)MathRound(bid/Point())%1000;

.

 
Yevhenii Levchenko:

DoubleToString -> StringSubstr -> StringTointeger

  string S_Bid = DoubleToString(Bid);

  string S     = StringSubstr(S_Bid,3,3);

  long   I_Bid = StringToInteger(S);

Может есть еще варианты без преобразования ? 

 
Вам Дмитрий дал хороший вариант.
 

Dark Kchlyzov:

Может есть еще варианты без преобразования ? 

есть

int last3= (Bid-NormalizeDouble(Bid,Digits-3))/Point;
 
MakarFX:

есть

int last3 = (Bid-NormalizeDouble(Bid,Digits-3))/Point;

так ругается : possible loss of data due to type conversion


 
Dark Kchlyzov:

int last3 = (Bid-NormalizeDouble(Bid,Digits-3))/Point;

так ругается : possible loss of data due to type conversion


int last3=StrToInteger(DoubleToString((Bid-NormalizeDouble(Bid,Digits-3))/Point,0));
 так не будет ругаться)
 
Dark Kchlyzov:

int last3 = (Bid-NormalizeDouble(Bid,Digits-3))/Point;

так ругается : possible loss of data due to type conversion


Не используй мою функцию!!! Она не правильная!

Вариант Dmitry Fedoseev правильный, даже лучший
 
MakarFX:

Не используй мою функцию!!! Она не правильная!

Bid_last3 =int(StringSubstr(string(Bid),4,3));

так всё норм !

 
Dark Kchlyzov:

Bid_last3 =int(StringSubstr(string(Bid),4,3));

так всё норм !

Да, тоже хороший вариант
Причина обращения: