Можно ли разрезать десятичную, а не округлую. Как это.Задача десятичного разреза
decimal number = 12.159m;
Как я могу легко получить 12,15 от number
и не 12.16?
Есть ли простой способ или манипуляции с строками единственный способ?
Можно ли разрезать десятичную, а не округлую. Как это.Задача десятичного разреза
decimal number = 12.159m;
Как я могу легко получить 12,15 от number
и не 12.16?
Есть ли простой способ или манипуляции с строками единственный способ?
Вы можете попробовать это
decimal number = 12.159m;
number = Math.Truncate(number * 100m)/100m;
Вы можете сделать
Math.Floor(number * 100)/100
В зависимости от того, как вы хотите обрабатывать (если вы хотите обрабатывать) отрицательные числа можно также использовать Truncate вместо пола.
Или другой способ сделать это, чтобы использовать регулярные выражения, чтобы захватить входы и преобразовать его обратно в десятичную, например
Regex r = new Regex("(?<postNo>\d+)\.(?<preNo>\d{1,3})"); Decimal d= 12.159M; Match m = r.Match(d.ToString()); if (m.Success){ string s = string.Format("{0}.{1}", m.Groups["postNo"].Text, m.Groups["preNo"].Text); Decimal d = Decimal.Parse(s); }
В ' preNo 'в регулярном выражении, измените его из \ d {1,2}, например, если вы хотите сохранить цифры, а только две цифры после точки. Хорошо, я знаю, что люди скажут, эй, что это медленный и ниспровергающий этот ответ ... это служит для того, чтобы показать, есть ли способы кошки кошки!
Надеюсь, это поможет, С уважением, Tom.
P.S: Редактировал это, как я понял после нисходящего потока, что редактирование ускользало от литералов, которые отсутствовали!
Спасибо, что работает! – Tuoski