【发布时间】:2017-12-06 14:13:25
【问题描述】:
我有一个函数可以检查string 是否为double,如果是,则该值必须四舍五入为两位数并返回为string。如果不是empty string,将返回。这适用于大多数情况。但是对于上边界,该值被四舍五入到下一个整数,这是错误的。如何强制不舍入该值?
上边框:9999999999999999.9900000000000000
预期值:9999999999999999.99
给定值:10000000000000000
public string MyConvertFunction(string param)
{
double result;
if(System.Double.TryParse(param, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US"), out result)) {
if(result == 0.0) return "";
return result.ToString("0.00", System.Globalization.CultureInfo.GetCultureInfo("en-US"));
}
return "";
}
似乎四舍五入在TryParse 部分。因此是这样的
double x = Math.Truncate(myDoubleValue * 100) / 100;
不可能。
【问题讨论】:
标签: c# double number-formatting globalization tryparse