十进制分隔符后的最小可能数字格式

时间:2011-12-24 03:48:42

标签: c#

我在SQL服务器中以十进制形式存储各种不同的大小,例如:

  

10oz,3.3oz,100ml,1.75litres

当我将这个数字作为小数字输出并执行ToString()时,我会得到太多的额外数字,例如

  

10.000,3.300,100.00,1.750

我想要的基本上是这样的:

decimal.Parse("1.7500").ToString().TrimEnd('0', '.')

让我1.7510

我似乎无法找出格式字符串。

在Visual Studio调试器中,如果我decimal.Parse("1.7500")它将以1.75形式显示给我,但当我ToString()时,它变为1.7500

Decimal.Round(...)并不好,因为格式不固定。

2 个答案:

答案 0 :(得分:1)

这看起来有点奇怪,但确实有效:

var dec = 1.0004000m;
var str = dec.ToString("0;#############################.#############################");

在这种情况下,最好利用自定义格式化程序。

您始终可以在ToString之外编写扩展方法,这样您就不必经常键入所有#。 '如果您需要数字分组,请在需要时插入适当的分组分隔符。

答案 1 :(得分:0)

Regex.Replace(decimal.Parse("1.7500").ToString(),"^(0+)|(?<=\.\d+)(0+)$")