Показать сообщение отдельно
Старый 21.12.2009, 13:35   #7
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: помогите переписать код

Вообще, приведение к Int'у - это не округление, а отбрасывание дробной части. В с++ именно так работает приведение к инт'у.
Т.е.
(int)1.99999 = 1
Однако в блитце (во всех ли бейсиках так - не знаю) не так, в нём как раз округление.
Правило округления такое:
Если число чётное ТО
{
  Если дробная часть числа <=(меньше или равна) 0.5 то
    округляет в меньшую сторону
  Иначе
    округляется в большую сторону
}
Иначе
{
  Если дробная часть числа <(строго меньше) 0.5 то
    округляет в меньшую сторону
  Иначе
    округляется в большую сторону
}
из справки по блицу:
Int converts floating point numbers by rounding to the nearest integer. 
NOTE: This is not the traditional meaning of Int in Basic. 

What about numbers exactly halfway between integers? 
The rounding is to the nearest even integer: 

Int( 2.5 ) ... produces 2 
Int( 3.5 ) ... produces 4
(Offline)
 
Ответить с цитированием