Re: магическое число??
От: LaptevVV Россия  
Дата: 30.08.03 11:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Может кто подскажет, что тут не так?


А>
А>int main(int argc, char* argv[])
А>{
А>  float fVal = 8.40;
А>  int nVal = fVal*100;
А>  printf("Hello World!\n fVal = %f, nVal = %i", fVal, nVal);
А>  return 0;
А>}
А>


А>выводит: fVal = 8.400000, nVal = 839

А>если в fVal поставить любое другое число, то все работает нормально.
А>например, если fVal = 8.30, то nVal = 830; только 8.40 приводит к такому странному эфекту.
Да это просто округление при выводе. Посмотри на этот текст

int main(int argc, char* argv[])
{
  float fVal = 8.40;
  int nVal = fVal*10000000;
  printf("fVal = %10.8f, nVal = %i\n", fVal, nVal);
  cout << fVal << endl;
  getch();
  return 0;
}


Выводит
fVal = 8.39999962, nVal = 83999996
8.4

Понятно?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.