常见Bug:数值精度 double float int

本文探讨了pow函数在大数计算中的精度问题,提出将float类型转换为double以提升精度。同时,讲解了如何通过Round函数进行四舍五入操作以确保正确索引获取。针对数据钝化和角度旋转插值,提供了优化建议,确保代码的稳定性和准确性。
摘要由CSDN通过智能技术生成

1.pow计算得 0, 引起误差

float t = 1.0e-8;

float d = pow(t, n); //n 很大, d = 0

注意:将 t, d类型改为double

2.适应Round进行四舍五入

int index = ary.ElementAt(i); //返回一个float值, 改值为一个索引坐标

修改为:

int index = Round(ary.ElementAt(i)); //这样才能获取最接近的索引

3.数据abs钝化问题

if(abs(v) < 0.01)

修改为:

if(fabs(v) < 0.01)

注意:数据钝化为整形,无法平滑判断,导致显示卡顿

4.角度旋转朝向问题

90 -> 270 或者 270 -> 90 的插值问题

指定 插值朝向, 避免无序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值