powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как уменьшить количество выводимых знаков после запятой?
6 сообщений из 6, страница 1 из 1
Как уменьшить количество выводимых знаков после запятой?
    #35659062
layriona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вывожу значения в таблицу MSFlexGrid, переменныйе задаю single, подскажите пожалуйста, как сделать так, чтобы количество знаков после запятой в выводимых значениях было, например, 2?
...
Рейтинг: 0 / 0
Как уменьшить количество выводимых знаков после запятой?
    #35659076
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Private Sub Command1_Click()
    With MSFlexGrid1
        .TextMatrix( 1 ,  1 ) = Round( 2 . 345678 ,  2 )
    End With
End Sub
...
Рейтинг: 0 / 0
Как уменьшить количество выводимых знаков после запятой?
    #35659672
Mons
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
Private Sub Command1_Click()
    With MSFlexGrid1
        .TextMatrix( 1 ,  1 ) = Round( 2 . 345678 ,  2 )
    End With
End Sub
это не правильно так как функция Round не совсем верно округляет...
точнее округляет как надо, но на сколько я помню, не целые числа округляет в сторону четного(или нечетного) числа...

правильнее использовать Format([выржение],"0.00")
Код: plaintext
1.
2.
3.
4.
Private Sub Command1_Click()
    With MSFlexGrid1
        .TextMatrix( 1 ,  1 ) = Format( 2 . 345678 , "0.00")
    End With
End Sub
0.00 - 2 знака после запятой...
0 - только целые...
...
Рейтинг: 0 / 0
Как уменьшить количество выводимых знаков после запятой?
    #35659873
layriona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Как уменьшить количество выводимых знаков после запятой?
    #35660849
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mons,

А вы напишите об этом в Microsoft, а то чего они своей неправильной функцией морочат простым людям головы.

И, кстати, с чего Вы взяли, что мой пример с Round не оставляет 2 цифр после запятой, как того (и того только) просил(а) layriona, т.е., говоря Вашими словами, неправильный?

И еще информация: то, о чем Вы упомянули, называется банковским округлением, или четным, а то, что Вы лихо выбросили на свалку, есть округление классическое.

И, в качестве иллюстрации: вот так выглядит мой код, написанный на VB.NET мною около 4 лет назад, который адресует эту проблему:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
    Public Function GetTraditionalRounding(ByVal pdblValue As Double, _
                                           ByVal pintPrecision As Integer, _
                                           ByVal pblnYesNo As Boolean) As Double

        '
        '   DESCRIPTION: Rounds either traditionally or with Banker (even) method
        '

        Dim dblReturn As Double
        Dim strTail As String

        strTail = StrDup(pintPrecision, "#")

        If pblnYesNo Then
            If IsNumeric(Format$(pdblValue, "#." & strTail)) Then
                dblReturn = CDbl(Format$(pdblValue, "#." & strTail))
            Else
                dblReturn =  0 . 0 
            End If
        Else
            dblReturn = Math.Round(pdblValue, pintPrecision)
        End If

        Return dblReturn

    End Function

Успехов
...
Рейтинг: 0 / 0
Как уменьшить количество выводимых знаков после запятой?
    #35662751
Mons
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я же написал что он рабочий , но округляет он не арифметически...

и кстати такое округление не подходит допустим для расчётов бумаг и т.д. уж больна велика погрешность....

и тем более я писал

Monsточнее округляет как надо, но на сколько я помню, не целые числа округляет в сторону четного(или нечетного) числа....

просто чтобы человек был в курсе, а то как то в своё время понаписывал Round и отдал прогу в бухгалтерию... потом всё переписывал... )))
удачи всем!!!

P.S. кстати если использовать функию Round в SQL, то там она уже работает как арифметическое округление )
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как уменьшить количество выводимых знаков после запятой?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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