Отформатируйте двойное значение как валюта, но без знака валюты (C#)

Небольшое отклонение от принятого ответа. toFixed(2) возвращает строку, и вы всегда получите два десятичных знака. Это могут быть нули. Если вы хотите подавить последние нули, просто сделайте это:

var discount = + ((price / listprice).toFixed(2));

Отредактировано: я только что обнаружил ошибку в Firefox 35.0.1, что означает, что приведенное выше может дать NaN с некоторыми значениями.
Я изменил свой код на

var discount = Math.round(price / listprice * 100) / 100;

Это дает число с точностью до двух десятичных знаков. Если бы вы хотели три, вы бы умножили и поделили на 1000 и т. Д.
ОП всегда хочет два знака после запятой, но если toFixed () не работает в Firefox, он должен сначала исправить.
См. https://bugzilla.mozilla.org/show_bug.cgi?id=1134388

.

49
задан Michael Meadows 14 March 2011 в 02:33
поделиться

3 ответа

string forDisplay = currentBalance.ToString("N2");
56
ответ дан 7 November 2019 в 11:23
поделиться

Вы пробовали:

currentBalance.ToString("#,##0.00");

Это длинный эквивалент:

currentBalance.ToString("N2");
10
ответ дан 7 November 2019 в 11:23
поделиться

Если форматирование валюты дает именно то, что вам нужно, клонируйте NumberFormatInfo с помощью и установите для свойства CurrencySymbol значение «». Вы должны убедиться, что он обрабатывает отрицательные числа так, как вы хотите, конечно.

Например:

using System;
using System.Globalization;

class Test
{
    static void Main()
    {
        NumberFormatInfo nfi = CultureInfo.CurrentCulture.NumberFormat;
        nfi = (NumberFormatInfo) nfi.Clone();

        Console.WriteLine(string.Format(nfi, "{0:c}", 123.45m));
        nfi.CurrencySymbol = "";
        Console.WriteLine(string.Format(nfi, "{0:c}", 123.45m));
    }
}

Другой вариант - использовать строку настраиваемого числового формата, конечно - это зависит от того, действительно ли вы хотите точно отражать то, как будет выглядеть валюта, только без символа, или контролировать точное расположение цифр.

65
ответ дан 7 November 2019 в 11:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: