Как включить десятичную точку в строку в vb.net? - PullRequest
0 голосов
/ 17 января 2012

Как добавить десятичную точку (с двумя десятичными знаками) к строке, не преобразовывая строку в десятичную?

Например (Dim str1 как String), независимо от того, что str1 имеет значение: 100, 100.0, 100.00 или 100.5, 100.50 ... Я хотел бы получить вывод: 100,00 или 100,50 с двумя десятичными знаками.

Ответы [ 3 ]

1 голос
/ 17 января 2012
Public Function FormatNumber(ByVal s As String) As String
    Dim pos As Integer = s.IndexOf("."c)
    If pos = -1 Then ' No decimal point
        Return s & ".00"
    Else
        Return (s & "00").Substring(0, pos + 3)
    End If
End Function

И так как вы вставили тег C #:

public string FormatNumber(string s)
{
    int pos = s.IndexOf('.');
    if (pos == -1) { // No decimal point 
        return s + ".00";
    } else {
        return (s + "00").Substring(0, pos + 3);
    }
}

Однако учтите, что лишние десятичные дроби будут усечены - округление не происходит!

0 голосов
/ 17 января 2012
Public Shared Function TwoDecimalString(input As String) As String
    Dim output As String
    Dim splittedInput As String() = input.Split("."C)
    If splittedInput.Length = 1 Then
        output = input & ".00"
    Else
        output = splittedInput(0) & "." & splittedInput(1).PadRight(2, "0"C)
    End If
    Return output
End Function
0 голосов
/ 17 января 2012

Невозможно добавить комментарий, поэтому извините за дополнительный пост ...

lthibodeaux и dierre верны.Преобразование в десятичную и обратно намного лучше.В противном случае вы можете создать функцию, которая ищет десятичную точку в строке и затем добавляет к ней нули в зависимости от того, где она найдена.Проблема в том, что если вы получите str вроде "13.876".Вы должны выяснить, как выполнить округление на строке.

Пройдите легкий путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...