需要以浮点格式和指数格式显示值
 如果该值大于或等于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));


这里要注意的是(与浮点数一样),两个取整结果之间的比较不应该是相等比较。

10-03 01:01