Независимое управление ролями для подписки в laravel

У меня была та же проблема. Я хотел форматировать числа, такие как «Общий» формат в электронных таблицах, то есть показывать десятичные знаки, если они значительны, но отрубить их, если нет. Другими словами:

1234.56 => 1,234.56

1234 => 1,234

blockquote>

Он должен поддерживать максимальное количество мест после десятичной, но не ставьте конечные нули или точки, если это не требуется, и, конечно же, это должно быть дружественным к культуре. Я никогда не понимал, как это сделать, используя только String.Format , но сочетание String.Format и Regex.Replace с некоторой помощью в области культуры от NumberFormatInfo.CurrentInfo выполнил задание (LinqPad C # Program).

string FormatNumber(T number, int maxDecimals = 4) {
    return Regex.Replace(String.Format("{0:n" + maxDecimals + "}", number),
                         @"[" + System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator + "]?0+$", "");
}   

void Main(){
    foreach (var test in new[] { 123, 1234, 1234.56, 123456.789, 1234.56789123 } )
        Console.WriteLine(test + " = " + FormatNumber(test));
}

Производит:

123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679

-1
задан SabHos 13 July 2018 в 11:24
поделиться