public static string ToStringKeepOriginalDecimals(this decimal quantity, CultureInfo cult)
{
var text = quantity.ToString(cult);
// set separator points
int i = text.LastIndexOf(cult.NumberFormat.NumberDecimalSeparator);
while (i > 0)
{
foreach (int groupSize in cult.NumberFormat.NumberGroupSizes)
{
i -= groupSize;
if (i <= 0) return text;
if (i == 1 && quantity < 0) return text; // last char is '-'
text = text.Insert(i, cult.NumberFormat.NumberGroupSeparator);
}
}
return text;
}