DataBinder.Eval до двух знаков после запятой со знаком доллара и без округления - PullRequest
0 голосов
/ 12 сентября 2018

Как я могу не округлить значение Eval и показать значение до двух десятичных знаков со знаком доллара?

Я пытался {0:C}, но возвращается 68444.9976 до $68445.00, и я хочу 68444,99 $.

<%#DataBinder.Eval(Container.DataItem, "Total")%>

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете написать такой метод в вашем файле * .aspx.cs:

protected decimal MyCurrencyFormat(object item, string field)
{
    var value = Convert.ToDecimal(((DataRowView)item)[field]);
    var d1 = decimal.Truncate(value);
    var d2 = value - d1;
    if (d2 == 0) return value;

    var s1 = d2.ToString();
    var s2 = "";

    for (int i = 2; i < s1.Length; i++)
    {
        s2 += s1[i];
        if (s2.Length >= 2) break;
    }

    if (s2.Length == 1)
        return d1 + (decimal.Parse(s2) / 10);
    return d1 + (decimal.Parse(s2) / 100);
}

Затем вызовите его из * .aspx файла:

<%#DataBinder.Eval(MyCurrencyFormat(Container.DataItem, "Total"))%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...