为什么我的float  保留了四位小数 转换成string 最后两位小数就成0了呢

解决方案 »

  1.   

      float s = 3.1415926f;
            var sou = s.ToString("f4");
      

  2.   

    float只有4个字节,它的精确度只有7位有效数字,如果你的float如果超过10000,那么就无法保证有4位小数的精确度,当然,你可以用ToString("f4")来输出后面的小数位,但可能是不精确的,
      

  3.   


    folat = 10814.9619;
       string quantityString = quantity.ToString("f4");
    quantityString  确为10814.9600
      

  4.   

    float quantity= 10814.9619f;
                string quantityString = Convert.ToDouble(quantity).ToString("f4");
    10814.9619
      

  5.   

    float类型只有4个字节,它的精度只有6~7位有效数字,所以你从高到低数7个数字,只有这7个数字是准确的,到第8个数字的时候肯定已经是不准确了,10814.9619到第7位是小数点后两位,7位以后就不准确了,如果你想精确到7个数字之后,就得用double,double有8个字节,有16个有效数字,double quantity = 10814.9619;
       string quantityString = quantity.ToString("f4");
      

  6.   

    float s = 3.1415926f;
      string sou = s.ToString("F4");保留几位小数F后面的数字就填几