我想请问float和double在巨大数字计算方面有没有影响返回值的问题?
比如:在计算面积的时候,坐标点是用float表示的.坐标经过了两次转换,屏幕坐标->经纬度->世界坐标
这中间过程都是float.而最后结果是double接受返回值.我想请问是不是在转换过程有精度问题影响后来的结果.我说的巨大数字是上百万,后面算面积的时候坐标点的差相差只有几百.结果总是不准确.是不是精度问题影响的?
比如:在计算面积的时候,坐标点是用float表示的.坐标经过了两次转换,屏幕坐标->经纬度->世界坐标
这中间过程都是float.而最后结果是double接受返回值.我想请问是不是在转换过程有精度问题影响后来的结果.我说的巨大数字是上百万,后面算面积的时候坐标点的差相差只有几百.结果总是不准确.是不是精度问题影响的?
我记得
float有效数字好像是7位
double是15位
如:3.1415926 表示为float,则只能精确到:3.14159212345678.92->1234567?.??
返回为FLOAT-》DOUBLE时候无损失,不过我建议你在中间用高精度long double 来定义 运算,因为运算会损失精度。
然后可以用稍微低点的精度来返回,这样的数字 既符合要求 也不会太有损精度。