很简单的问题
为什么我的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");
[解决办法]
[解决办法]
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;
string sou = s.ToString("F4");
保留几位小数F后面的数字就填几
[解决办法]
楼上都已经说清了,回答问题得2分