Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как убрать у дробного числа цифры после запятой? Добавлено: 30.08.08 14:15  

Автор вопроса:  Ciaocacao
Подскажите кто знает как справиться с такой проблемой: моя прога делит одно число на другое и пишет ответ в лейбл1. Обычно получается дробное число с огромным количеством цифр после запятой. Как сделать, чтобы в ответ писались цифры только до запятой, а остаток отбрасывался? ну или до запятой и + 1 знак после запятой?

Решение, думаю, не будет сложным, просто раньше никогда с этим не сталкивался.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Игорь



ICQ: 457394129 

Вопросов: 52
Ответов: 133
 Профиль | | #1 Добавлено: 30.08.08 16:35
Либо вообще убрать числа после запятой: Label1=Fix(Число)

Либо регулируй количество чисел после запятой:
Label1=Format(Число,"##0.00";)-Вродебы так. Если написал верно то после запятой будеь 2 знака!

Ответить

Номер ответа: 2
Автор ответа:
 Игорь



ICQ: 457394129 

Вопросов: 52
Ответов: 133
 Профиль | | #2 Добавлено: 30.08.08 16:43
Вторая пишется вот так:
Label1=Format(Число, "###0.00";)
Напишешь например 100.523, получишь 100.52

Ответить

Номер ответа: 3
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #3
Добавлено: 30.08.08 17:54
Как сделать, чтобы в ответ писались цифры только до запятой, а остаток отбрасывался?

А типа 5\3 уже что отменили???

Ответить

Номер ответа: 4
Автор ответа:
 Игорь



ICQ: 457394129 

Вопросов: 52
Ответов: 133
 Профиль | | #4 Добавлено: 30.08.08 19:50
Не Боцман, 5\3 это явное округление, которое может произойти и в большую сторану. Нужно просто убрать хвост, тоесть заведомо округлить вниз!

Ответить

Номер ответа: 5
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #5
Добавлено: 30.08.08 20:48
Не Боцман, 5\3 это явное округление

Если, к примеру, вы делите два числа нацело, пишите w = w \ 2 вместо w = Int(w / 2). Вообще последнее должно рассматриваться так: w = CInt(Int(CDbl(w) / 2)). А целочисленное деление есть команда процессора, которая должна выполняться как одна операция, то есть быстро. Но однако оператор •\• (делить нацело) работает не совсем так как Int(•/•). А именно, он работает как Fix(•/•).Напомню, разница между Int и Fix в том, что Int возвращает наибольшее целое, меньшее аргумента, а Fix возвращает ближайшее меньшее по модулю целое к аргументу

Ответить

Номер ответа: 6
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #6
Добавлено: 30.08.08 22:58
Ciaocacao задал вопрос и слинял.
На всякий случай по
ну или до запятой и + 1

Как вариант; Функция Round полезна для возвращения номера с указанном числом десятичных знаков, Вы не можете предсказать, как будет выполненно округление, когда округляемая цифра равна 5. Как VB округляет число зависит от внутреннего двоичного представления переданного аргумента.
Dim A, retval
A = 123.456789
retva l = Round (A) 'возвращается 123
retva l = Round (A, 3) 'возвращается 123.457

Ответить

Номер ответа: 7
Автор ответа:
 Ciaocacao



Вопросов: 3
Ответов: 5
 Профиль | | #7 Добавлено: 01.09.08 12:45
Игорь и Боцман, спасибо, теперь все получилось! Подходят оба способа.

ps: сорри, что не смог ответить в тот же день...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам