如果输入是字符串,这不是那么简单吗?您可以使用以下之一:
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”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)