我有一个函数,用于检查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;
不可能。
使用'decimal'完美的作品。谢谢。 :-) – mburm
很高兴能有所帮助! Ç - := –