Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Окруление / 10 сообщений из 10, страница 1 из 1
16.04.2004, 14:34
    #32484373
inwin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
Господа, простите за темность...
Подскажите как в отчете округлить сумму до 10.
К примеру если выходит сумма 15678, что бы она становилась 15680
...
Рейтинг: 0 / 0
16.04.2004, 14:39
    #32484391
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
Код: plaintext
round( 15678 / 10 , 0 )* 10 
...
Рейтинг: 0 / 0
16.04.2004, 14:42
    #32484398
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
int(x/10+0.5)*10
...
Рейтинг: 0 / 0
16.04.2004, 14:45
    #32484409
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
cогласен с ВC, совет более универсальный, в Acc97 нет ф-ии Round ;)
...
Рейтинг: 0 / 0
16.04.2004, 14:48
    #32484421
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
для VBA

okrug = Sgn(Number) * Int(CDec(Number) * 10 ^ NumDigits + 0.5) / 10 ^ NumDigits
где Number -число
Number - число знаков после запятой (если с минусом задавать, то до запятой)

все остальное выкинь
...
Рейтинг: 0 / 0
16.04.2004, 14:49
    #32484423
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
где Number -число
NumDigits - число знаков после запятой (если с минусом задавать, то до запятой)
...
Рейтинг: 0 / 0
16.04.2004, 14:53
    #32484437
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
Мой ответ был в точности частным случаем этого. Приятно осознавать. :^)
...
Рейтинг: 0 / 0
16.04.2004, 15:24
    #32484521
amel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
Может на что сгодится и мой вариант!
Public Function RoundDigit(Number As Variant, Optional NumDigits As Long = 2) As Double
Dim dblPower As Double
Dim varTemp As Variant
Dim intsgn As Integer
If Not IsNumeric(Number) Then
RoundDigit = 0
Exit Function
End If
If Number = 0 Then
RoundDigit = 0
Exit Function
End If
dblPower = 10 ^ NumDigits
intsgn = Sgn(Number)
Number = Abs(Number)
varTemp = CDec(Number) * dblPower + 0.5
RoundDigit = intsgn * Int(varTemp) / dblPower
End Function
...
Рейтинг: 0 / 0
16.04.2004, 16:36
    #32484689
Valer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
toch - число знаков после зпт
если < 0 -1,-2 ... то округляет до десятков , сотен и тд

Function mround(xx As Variant, toch As Long) As Double
Dim wsp, wsp2 As Long
Dim wsp1 As Double
wsp2 = (10 ^ Abs(toch))
If toch >= 0 Then
wsp1 = xx * wsp2
wsp = Int(xx * wsp2)
If wsp1 - wsp >= 1 / 2 Then
mround = (wsp + 1) / wsp2
Else
mround = (wsp) / wsp2
End If
Else
wsp1 = xx / wsp2
wsp = Int(xx / wsp2)
If wsp1 - wsp >= 1 / 2 Then
mround = (wsp + 1) * wsp2
Else
mround = (wsp) * wsp2
End If
End If
End Function
...
Рейтинг: 0 / 0
19.04.2004, 07:35
    #32485733
inwin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окруление
Формула Владимира Саныча подошла как нельзя лучше, огромное спасибо)))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Окруление / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]