Округление (?)

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

Округление (?)

Сообщение Tok » 02.03.2004 (Вт) 7:15

Как получить с числа 2,33333 - 2,3 т.е округлить до десятичной?
Back from the dead
I am resurrected
to spew, putrefaction...
http://gutted.nm.ru

Andrey A Kireev
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 06.11.2003 (Чт) 10:05

Сообщение Andrey A Kireev » 02.03.2004 (Вт) 9:31

Видимо придется так.
x = x * 10 переносим запятую
x = ABS(x) округляем
x = x / 10 возвращаем запятую

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 02.03.2004 (Вт) 9:50

А можно так:
Код: Выделить всё
Public Function CustomRound(fltNum As Double, numOfDigits As Byte) As Double
  Dim frmString As String
  frmString = String$(numOfDigits, "#")
  CustomRound = Format(fltNum, "############." & frmString)
End Function

'Вызов функции:
Dim a As Double
a = 111.19212121211
MsgBox CustomRound(a, 1)

Да, кстати, округление можно производить до любого знака после запятой!!!
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.03.2004 (Вт) 10:02

Знающий, человеку нужно не совсем то было :) Ему то как раз оставить дробную часть, а целую выкинуть. То есть из 2.33333 ему надо было получить 0.03333

В это смысле превый ответ более подходит, как мне кажется.

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

Сообщение alibek » 02.03.2004 (Вт) 10:04

Код: Выделить всё
MsgBox Round(2.3333333, 1)
Lasciate ogni speranza, voi ch'entrate.

Andrey A Kireev
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 06.11.2003 (Чт) 10:05

Сообщение Andrey A Kireev » 02.03.2004 (Вт) 10:22

С чего вы взяли что ему остаток округления нужно получить :)

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 02.03.2004 (Вт) 10:23

RayShade писал(а):Знающий, человеку нужно не совсем то было :) Ему то как раз оставить дробную часть, а целую выкинуть. То есть из 2.33333 ему надо было получить 0.03333
В это смысле превый ответ более подходит, как мне кажется.

Ну если вопрос Как получить с числа 2,33333 - 2,3 т.е округлить до десятичной?

говорит, что надо получить дробную часть, то <no coments>
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Andrey A Kireev
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 06.11.2003 (Чт) 10:05

Сообщение Andrey A Kireev » 02.03.2004 (Вт) 10:27

тут просто не верно сам вопрос поставлен. был знак минуса, онже дефис вводит в заблуждение. :)

Tok
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 28.09.2003 (Вс) 16:14
Откуда: Алчевск (Украина)

Сообщение Tok » 03.03.2004 (Ср) 2:29

Спрошу точнее:
В лейбл выводится результат деления и число получается в периоде (2,3333333...), мне нужно убрать все цифры после запятой кроме первой (т.е. 2,3). :?
??
Back from the dead
I am resurrected
to spew, putrefaction...
http://gutted.nm.ru

Tok
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 28.09.2003 (Вс) 16:14
Откуда: Алчевск (Украина)

Сообщение Tok » 03.03.2004 (Ср) 2:35

Второй ответ подходит :D
Спасибо!
Back from the dead
I am resurrected
to spew, putrefaction...
http://gutted.nm.ru

Sergey-13
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 119
Зарегистрирован: 23.01.2004 (Пт) 16:02
Откуда: Саранск

Сообщение Sergey-13 » 03.03.2004 (Ср) 13:53

Andrey A Kireev ABS - модуль, т.е. убивается знак минус, нужен INT

Andrey A Kireev
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 06.11.2003 (Чт) 10:05

Сообщение Andrey A Kireev » 03.03.2004 (Ср) 13:55

Возможно :)
Знания давно подзабытые, больше 7 лет не програмил. :)
Я щас опять взялся по нужде. :)

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 03.03.2004 (Ср) 14:08

Вот так:
твоё число путь будет NumIn, тип Currency

Код: Выделить всё
Dim NumIn as Currency
NumIn=Format(NumIn."#########.#")

и всё, в NumIn сохранится твоё округленное число до десятых
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.03.2004 (Ср) 14:12

Знающий, еще раз отметим бесполезность повторения одной и той же идеи в рамках одного топика. К тому же, после ответа автора что он уже нашел, что ему надо. И к тому же, когда это то что надо совсем не то, про что вы пишете.

Второй раз, между прочим.

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 03.03.2004 (Ср) 19:50

RayShade писал(а):Знающий, еще раз отметим бесполезность повторения одной и той же идеи в рамках одного топика. К тому же, после ответа автора что он уже нашел, что ему надо. И к тому же, когда это то что надо совсем не то, про что вы пишете.
Второй раз, между прочим.

а я и не знал о функции Format! даже написал свою функцию formatFloat как в борланд билдере! теперь буду Format пользоваться.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.03.2004 (Ср) 20:26

Ты все еще о ней не знал, прочтя первые 5 постингов этого топика? :? Я про то, что незачем повтрояться по несколько раз на одну и туже тему вот и все.


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

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

Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 10

    TopList