我有一些由集合返回的字段
2.4200 2.0044 2.0000
我想要类似的结果
2.42 2.0044 2
我尝试使用String.Format,但它会返回2.0000并将其设置为也N0舍入其他值。
String.Format
2.0000
N0
如果输入是字符串,这不是那么简单吗?您可以使用以下之一:
string.Format("{0:G29}", decimal.Parse("2.0044")) decimal.Parse("2.0044").ToString("G29") 2.0m.ToString("G29")
这应该适用于所有输入。
更新 检查标准数字格式,我必须将docs明确指出的精度说明符设置为29:
但是,如果数字为小数并且省略了精度说明符,则始终使用定点表示法并保留尾随零。
更新 Konrad 在评论中指出:
提防诸如0.000001之类的值。G29格式将以最短的方式显示它们,因此它将切换为指数表示法。string.Format("{0:G29}", decimal.Parse("0.00000001",System.Globalization.CultureInfo.GetCultureInfo("en- US")))结果将为“ 1E-08”。
string.Format("{0:G29}", decimal.Parse("0.00000001",System.Globalization.CultureInfo.GetCultureInfo("en- US")))