读书人

怎么提高转换精度start.X = float.Par

发布时间: 2012-04-23 13:17:38 作者: rapoo

如何提高转换精度start.X = float.Parse(code.Value);
code.Value=3493784.654397;
start.x=3493784.75;
精度太差了,有人知道有更好的转换,还想换成float, 是否可能精确到3493784.654,否侧的话,只能转换成 double 了,那我的改动就太多了。谢谢!

[解决办法]
float只有4个字节,有效数字只有6~7位,所以能精确到个位就已经不错了,已经是7个有效数字了,小数点后第一位是第八个有效数字,float无法表示,所以第八个有效数字位肯定是不精确的,

你需要的3493784.654有10个有效数字,float无法达到这个精度,只能用double,double有15~16个有效数字,

这不是Parse导致的问题,而是float字节数太少无法表示10个有效数字,你只能改为double,

读书人网 >C#

热点推荐