![]() |
![]() |
||
Округление до произвольного количества знаков после запятойПрислал: Сергей Оркин userpirx@yandex.ru Простейший способ округлить до 2х знаков после запятой: Результат = Round(Выражение, 3)
Public Function Okrug(s As Variant, Optional m As Byte = 2) As Double 'Округляет аргумент от 0 до m знаков после запятой 'При возникновении любой ошибки возвращает = 0 On Error GoTo OkrugErr Dim n As Long, d As String d = String(m, 0) n = val(1 & d) If s * n - Int(s * n) < 0.5 Then Okrug = Int(s * n) / n Else Okrug = (Int(s * n) + 1) / n End If Exit Function OkrugErr: 'Метка обработчика ошибок Okrug = 0 Err.Clear End Function Вот вариант округления только до ДВУХ знаков - зато работает в трое быстрее Public Function RoundTwo(s As Variant) As Currency 'Округлят аргумент до двух знаков после запятой 'при возникновении ошибки возвращает НОЛЬ Dim x As Long On Error GoTo RoundTwoErr x = Int(s * 100) If s * 100 - x < 0.5 Then RoundTwo = CCur(x / 100) Else RoundTwo = CCur((x + 1) / 100) End If Exit Function RoundTwoErr: 'Метка обработчика ошибок RoundTwo = 0 Err.Clear End Function |
![]() ![]() |
||
L.E. 11.02.2023 |