Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Подскажите пример округления числа Добавлено: 10.02.07 19:14  

Автор вопроса:  Stepan

Ответить

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

Номер ответа: 16
Автор ответа:
 Stepan



Вопросов: 9
Ответов: 32
 Профиль | | #16 Добавлено: 12.02.07 00:33
Разгадал загадку. Надо было использвать
ф-ию Val() - это ведь числовая величина (Value)
x = Val(x * 100 + 0.5) / 100

ОГРОМНОЕ ПРИОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ

Ответить

Номер ответа: 17
Автор ответа:
 Stepan



Вопросов: 9
Ответов: 32
 Профиль | | #17 Добавлено: 12.02.07 00:57
Хотя есть и еще один изъян в ф-ии Val()
Это округление на отрицательное число.
Вот к примеру:
Берем число -5399,149 получается -5399,14
Берем число -5399,122 получается -5399,11
Может какую проверку сделать на отрицательное число и добавить еще ф-ию на отрицательное число.

Ответить

Номер ответа: 18
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #18
Добавлено: 12.02.07 11:33
____ Она должна в отрицательных аргументах вести себя по другому.

Ответить

Номер ответа: 19
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #19 Добавлено: 13.02.07 17:59
если число < 0 то
    результат = -Округлить(-число)
иначе
    ...
кц

так для отрицательных чисел округление станет на место. Независимо от выбраной функции Округлить.(честно говоря здесь перебрали столько вариантов, что даже не могу понять, который из них выбрали)

Ответить

Номер ответа: 20
Автор ответа:
 Stepan



Вопросов: 9
Ответов: 32
 Профиль | | #20 Добавлено: 14.02.07 00:05
СПАСИБО получилось.

Ответить

Номер ответа: 21
Автор ответа:
 Stepan



Вопросов: 9
Ответов: 32
 Профиль | | #21 Добавлено: 14.02.07 00:13
Конечный код получился такой:
********************************
If Text1.Text < 0 Then
Text1.Text = Text1.Text * (-1)
Text1.Text = -Val(Text1.Text * 100 + 0.5) / 100
Else
Text1.Text = Val(Text1.Text * 100 + 0.5) / 100
End If
********************************

ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ

Ответить

Номер ответа: 22
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #22 Добавлено: 14.02.07 12:58
Может в биб. кодов?

Ответить

Номер ответа: 23
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #23 Добавлено: 18.02.07 22:33
2 Stepan
может упростить?
Text1.Text = IIF(Text1.Text < 0,-Val(ABS(Text1.Text) * 100 + 0.5) / 100, Val(ABS(Text1.Text) * 100 + 0.5)

Ответить

Номер ответа: 24
Автор ответа:
 cdc



Вопросов: 0
Ответов: 1
 Профиль | | #24 Добавлено: 22.02.07 07:32
Здравствуйте, жители форума VBNet!
больно смотреть на ваши мучения с округлением!

представляю вам функцию округления
для любых чисел, положительных и отрицательных:

Function Okrugly(ByVal V As Double, ByVal N As Integer)
   Okrugly = Fix(CDbl(V * 10 ^ N + Sgn(V) * 0.5)) / 10 ^ N
End Function


' Okrugly - имя функции
' ByVal - слово для получения значения переменной
' V - имя переменной для округления
' N - точность округления
' as - слово перед названием типа переменной
' Double - тип переменной для чисел с плавающей точкой
' Integer - тип целых чисел
' = - оператор присваивания
' Fix - возвращает целую часть нецелого числа
' CDbl - преобразование того, что в скобках, к типу Double
' * - оператор умножения
' + - оператор сложения
' Sgn - определяет знак числа в скобках
' / - оператор деления

Ответить

Страница: 1 | 2 |

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



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