Отбросить дробную часть

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Отбросить дробную часть

Сообщение dimix » 03.06.2005 (Пт) 11:27

Всем привет!
Я так понимаю, отбрасывание дробной части будет работать быстрее, чем округление. Но как это сделать? Т.е. "15,87" превратить в "15".

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 03.06.2005 (Пт) 11:29

Fix :?:

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 03.06.2005 (Пт) 11:33

Суперски! Спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.06.2005 (Пт) 11:40

Int?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 03.06.2005 (Пт) 11:43

Both :lol:

Я тоже когда-то про это спрашивал, получил те же самые два ответа. Если кому интересно, функции почти одинаковые, только в разные стороны округляют отрицательные числа

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 03.06.2005 (Пт) 12:01

Типа соревнование, кто даст самый короткий ответ?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.06.2005 (Пт) 12:11

uhm, функции разные. Первая отбрасывает дробную часть, вторая округляет вниз.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 03.06.2005 (Пт) 12:15

:?:

Мой хелп писал(а):Int, Fix Functions


Returns the integer portion of a number.

Syntax

Int(number)

Fix(number)

The required number argument is a Double or any valid numeric expression. If number contains Null, Null is returned.

Remarks

Both Int and Fix remove the fractional part of number and return the resulting integer value.

The difference between Int and Fix is that if number is negative, Int returns the first negative integer less than or equal to number, whereas Fix returns the first negative integer greater than or equal to number. For example, Int converts -8.4 to -9, and Fix converts -8.4 to -8.

Fix(number) is equivalent to:

Sgn(number) * Int(Abs(number))



dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 03.06.2005 (Пт) 12:21

Дык, это как раз и подтверждает слова alibek'а.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 03.06.2005 (Пт) 14:05

:?: :?: :?:
Both Int and Fix remove the fractional part of number and return the resulting integer value.

The difference between Int and Fix is that if number is negative...


Если кому интересно, функции почти одинаковые, только в разные стороны округляют отрицательные числа...

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 03.06.2005 (Пт) 14:35

uhm, насколько я понял из твоего же хелпа, дело не в том, кто куда округляет отрицательные числа. Дело в том, что Fix тупо отбрасывает дробную часть. Поэтому ему по боку, положительное число или отрицательное. А Int округляет в меньшую сторону, поэтому и получается, что если рассматривать числа по модулю, то положительное число округлится в меньшую сторону, а отрицательное - в большую.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 03.06.2005 (Пт) 14:38

Ладно, проехали. Опять, как выяснилось, все друг с другом согласны, но используют разные термины.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.06.2005 (Пт) 14:43

Смысл в том, что Fix() отбрасывает дробную часть, а Int() округляет вниз. Просто эти операции дают одинаковый результат для положительных чисел, но функции это разные.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 03.06.2005 (Пт) 14:50

Функции почти одинаковые.
Я при этом не спорю, что они разные. :D

Дальнейший спор неизбежно будет философским, поскольку до сих пор мы друг другу не противоречили :D


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 165

    TopList