>>> import re
>>> s = "The sun shine brightly, but is very cold today!"
>>> re.findall( r'\s+|,\s*', s)
['The', 'sun', 'shine', 'brightly', 'but', 'is', 'very', 'cold', 'today!']
надеюсь, что вы, ребята, используете его.
Попробуйте
decimal x = 32.0040M;
string value = x.ToString("N" + 3 /* decimal places */); // 32.004
string value = x.ToString("N" + 2 /* decimal places */); // 32.00
// etc.
Надеюсь, это работает для вас. См.
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
для получения дополнительной информации. Если вы находите добавление немного хакерским, попробуйте:
public static string ToRoundedString(this decimal d, int decimalPlaces) {
return d.ToString("N" + decimalPlaces);
}
Тогда вы можете просто позвонить
decimal x = 32.0123M;
string value = x.ToRoundedString(3); // 32.012;
Попробуйте сделать это, чтобы динамически создать собственную строку формата без необходимости использовать несколько шагов.
Console.WriteLine(string.Format(string.Format("{{0:0.{0}}}", new string('0', iPlaces)), dValue))
В шагах
//Set the value to be shown
decimal dValue = 1.7733222345678M;
//Create number of decimal places
int iPlaces = 6;
//Create a custom format using the correct number of decimal places
string sFormat = string.Format("{{0:0.{0}}}", new string('0', iPlaces));
//Set the resultant string
string sResult = string.Format(sFormat, dValue);
Что-то подобное должно с этим справиться:
int x = 3;
string format = "0:0.";
foreach (var i=0; i<x; i++)
format += "0";
Console.WriteLine(string.Format("{" + format + "}", 1.2M));
См. Эти ссылки для справки по строке формата:
http://msdn.microsoft.com/en-us/library/0c899ak8.aspx
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx
Вы хотите это:
Console.WriteLine(Math.Round(1.2345M, x).ToString("F" + x.ToString()));
Кроме того, при необходимости вызов .ToString будет округлен для вас, так что вы можете пропустить Math.Round
вызовите и просто выполните следующее:
Console.WriteLine(1.2345M.ToString("F" + x.ToString()));
Способ сделать это:
private static string FormatDecimal(int places, decimal target)
{
string format = "{0:0." + string.Empty.PadLeft(places, '0') + "}";
return string.Format(format, target);
}