Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как уменьшить количество выводимых знаков после запятой? / 6 сообщений из 6, страница 1 из 1
17.11.2008, 21:49
    #35659062
layriona
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить количество выводимых знаков после запятой?
Я вывожу значения в таблицу MSFlexGrid, переменныйе задаю single, подскажите пожалуйста, как сделать так, чтобы количество знаков после запятой в выводимых значениях было, например, 2?
...
Рейтинг: 0 / 0
17.11.2008, 22:05
    #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
18.11.2008, 10:37
    #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
18.11.2008, 11:37
    #35659873
layriona
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить количество выводимых знаков после запятой?
Спасибо!
...
Рейтинг: 0 / 0
18.11.2008, 15:41
    #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
19.11.2008, 11:38
    #35662751
Mons
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как уменьшить количество выводимых знаков после запятой?
я же написал что он рабочий , но округляет он не арифметически...

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

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

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

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

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


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