Помощь - Поиск - Пользователи - Календарь
Полная версия: Целая часть от числа Int
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Vardes
У меня такой вопрос к знатокам.Почему,когда я пытаюсь взять целую часть от числа 3 ( Int(3) ), то результат получаю <1, хотя по идее результатом должно быть то же число 3 ???
мисс_граффити
Можно чуть подробнее - КАК ты это получаешь?
ShowMessage(FloatToStr(Int(3)));
показывает 3.
в консольном режиме
  writeln(Int(3));
тоже выдает 3.
у меня Delphi 6, если что.
volvo
Во-первых, ты не очень корректно делаешь, Int возвращает результат типа Extended...

А потом, покажи, как ты это делаешь... У меня, например, так:
  ShowMessage(FloatToStr(Int(3)));
показывает 3, как положено...
мисс_граффити
Цитата
Во-первых, ты не очень корректно делаешь

почему?
Цитата
function FloatToStr(Value: Extended): string;
, как гласит Delphi Help
вот я ему Extended и передаю...
volvo
Юля, я обращался к автору smile.gif Если б видел твой ответ, ты думаешь, я бы стал дублировать? no1.gif
Vardes
Ну вот пример:
Код

var c,d:extended;
begin
c:=frac(118,6) //дробная часть числа=0,6
d:=int(c*10) //целая часть получается 5,вместо 6

Вот у меня и вопрос, почему при выражении c*10 получается не 6 а 5,9999(9).
volvo
Читай вот тут, например:
http://www2.hursley.ibm.com/decimal/decifaq.html (англ)
про погрешность представления вещественных чисел...

Или погугли на ту же тему, для нахождения информации на русском языке.

Добавлено через 5 мин.
P.S. Кое что есть вот тут:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
мисс_граффити
А теперь перечитываем первое сообщение.
Знаешь, 5 и 6 - это совсем не то же самое, что 3 и "число <1". По этой логике вместо 3 может получиться в худшем случае 2. Но 2>1... Как меня учили.
Vardes
Спасибо за информацию,очень помогла.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.