需要以浮点格式和指数格式显示值
如果该值大于或等于0.01且小于或等于1000
以指数格式显示,否则以浮动格式显示
例如:3.230000000显示为3.23
0.00001显示为1E-05
但是我的代码的问题,如果给定的数字为1,则数字显示为1.00。
if (dValue >= 0.01|| dValue <= 1000.0)
return (string.Format("{0:0.##E+00}", dValue));
else
return (string.Format("{0:F2}", dValue));
请让我知道如何检查数字不包含十进制值
最佳答案
将数字四舍五入到小数点后两位,然后舍入为整数,然后看结果是否“足够接近”:
if (dValue >= 0.01 && dValue <= 1000.0)
{
if (Math.Abs(Math.Round(dValue, 2) - Math.Round(dValue, 0)) < 0.005) {
return string.Format("{0:F0}", dValue);
else
return string.Format("{0:F2}", dValue);
}
else return (string.Format("{0:0.##E+00}", dValue));
这里要注意的是(与浮点数一样),两个取整结果之间的比较不应该是相等比较。