很简单的问题
为什么我的float 保留了四位小数 转换成string 最后两位小数就成0了呢
------解决方案-------------------- float s = 3.1415926f;
var sou = s.ToString("f4");
------解决方案-------------------- float只有4个字节,它的精确度只有7位有效数字,如果你的float如果超过10000,那么就无法保证有4位小数的精确度,
当然,你可以用ToString("f4")来输出后面的小数位,但可能是不精确的,
------解决方案-------------------- C# code
float quantity= 10814.9619f;
string quantityString = Convert.ToDouble(quantity).ToString("f4");
------解决方案-------------------- 探讨 C# code float quantity= 10814.9619f; string quantityString = Convert.ToDouble(quantity).ToString("f4"); 10814.9619
------解决方案-------------------- 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");探讨 引用: float s = 3.1415926f; var sou = s.ToString("f4"); folat = 10814.9619; string quantityString = quantity.ToString("f4"); quantityString 确为10814.9600
------解决方案-------------------- float s = 3.1415926f; string sou = s.ToString("F4"); 保留几位小数F后面的数字就填几
------解决方案-------------------- 楼上都已经说清了,回答问题得2分