Как мне отформатировать a Double
в a String
в C #, чтобы иметь только два десятичных знака?
Если я использую String.Format("{0:0.00}%", myDoubleValue)
число, то округляется, и я хочу простое усечение без округления. Я также хочу, чтобы преобразование String
было чувствительным к культуре.
Ответы:
Я использую следующее:
Например:
Если номер 50,947563, и вы используете следующее, произойдет следующее:
И вот ваш ответ урезан, теперь для форматирования строки просто сделайте следующее:
источник
string.Format
шаге, что и форматирование строки. Смотрите мой ответ ниже.Следующие округляет числа, но показывает только до 2 десятичных знаков (удаляя любые завершающие нули), благодаря
.##
.http://dobrzanski.net/2009/05/14/c-decimaltostring-and-how-to-get-rid-of-trailing-zeros/
источник
Я предлагаю вам сначала усечь, а затем отформатировать:
Используйте константу 100 для усечения 2 цифр; используйте 1, а затем столько нулей, сколько цифр после десятичной точки, которую вы хотите. Используйте название культуры, которое вам нужно для настройки результата форматирования.
источник
new CultureInfo("de-DE")
, вы должны использовать статическое свойствоCulture.InvariantCulture
Самый простой способ - использовать строки в числовом формате:
источник
я использую
price.ToString("0.00")
для получения ведущих 0источник
Функция c #, выраженная Кайлом Розендо:
источник
Как насчет добавления одного дополнительного десятичного числа, которое должно быть округлено и затем отброшено:
источник
Это работает для меня
источник
Я знаю, что это старая тема, но я просто должен был это сделать. В то время как другие подходы здесь работают, я хотел простой способ, чтобы иметь возможность влиять на множество звонков
string.format
. Поэтому добавлениеMath.Truncate
ко всем вызовам было не очень хорошим вариантом. Кроме того, поскольку часть форматирования хранится в базе данных, это еще больше ухудшило ситуацию.Таким образом, я сделал пользовательский поставщик форматов, который позволил бы мне добавить усечение к строке форматирования, например:
Реализация довольно проста и легко расширяема для других требований.
источник
У меня была эта проблема с формами Xamarin и я решил ее следующим образом:
источник
Для чего стоит, для показа валюты, вы можете использовать
"C"
:Вывод:
$1.99
источник
Вы также можете написать свой собственный IFormatProvider , хотя я полагаю, что в конечном итоге вам придется подумать о способе фактического усечения.
По крайней мере, это будет легко использовать повторно.
В CodeProject есть статья о том, как реализовать свой собственный IFormatProvider / ICustomFormatter . В этом случае «расширение» существующего числового формата может быть лучшим выбором. Это не выглядит слишком сложно.
источник
Следующее может использоваться только для отображения, которое использует свойство String.
источник
Решение:
источник
Также обратите внимание на информацию о культуре вашей системы. Здесь мое решение без округления.
В этом примере вам просто нужно определить переменную MyValue как double. В результате вы получите отформатированное значение в строковой переменной NewValue .
Примечание. Также установите оператор C # using:
источник