Округление вещественного до целого

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.03.2006 (Чт) 19:47

Код: Выделить всё
Int(x + 0.5)
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Округление вещественного до целого

Сообщение tyomitch » 16.03.2006 (Чт) 20:32

Roman Koff писал(а):Наткнулся на такую фичу:
Когда дробная часть равна точно 0,5, функции CInt и CLng всегда округляют число до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 — до 2. Функции CInt и CLng отличаются от функций Fix и Int, которые отбрасывают, а не округляют дробную часть числа. Кроме того, функции Fix и Int всегда возвращают значение того типа, который имеет передаваемый аргумент.


Не нужно никакой дополнительной проверки.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.03.2006 (Чт) 21:38

Да при чём здесь CInt? :-?
tyomitch писал(а):
Код: Выделить всё
Int(x + 0.5)
Изображение

NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

Сообщение NicSoft » 17.03.2006 (Пт) 9:47

Format(2.5,0)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 17.03.2006 (Пт) 9:56

Код: Выделить всё
        MsgBox(Math.Round(0.2, MidpointRounding.AwayFromZero).ToString & vbCrLf & _
            Math.Round(0.5, MidpointRounding.AwayFromZero).ToString & vbCrLf & _
            Math.Round(0.8, MidpointRounding.AwayFromZero).ToString)
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 17.03.2006 (Пт) 15:44

Если я не ошибаюсь, то по моему Microsoft рекомендует в таких случаях использовать тип Decimal вместо Single и Double. Что то там с точностью вычислений связано...
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

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

Сообщение GSerg » 17.03.2006 (Пт) 15:50

Roman Koff
Матчасть. Для изучения.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic .NET

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

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

    TopList