我想使用双精度最多2个小数位。即,它将最多存储2个小数位,如果比较两个双精度值,则比较应仅基于前2个小数位。如何实现这样的事情?我的意思是存储,比较所有内容都将仅基于小数点后两位。其余位置可能不同,大于,小于,无所谓。
编辑 我的价值观不大。说从0到5000最大值。但是我必须乘以Cos A,Sin A很多次,其中A的值在程序过程中不断变化。
编辑 在我的程序中,汽车以特定速度(例如12 m / s)行驶。现在,每隔几分钟,汽车就会改变方向,例如选择一个新角度并开始沿该方向直线移动。现在每次移动时,我都必须在地图上找出其x和y位置。这将是currentX + velocity * Cos A和currentY + Velocity * SinA。但是由于这种情况经常发生,所以随着时间的推移会出现很多累积误差。如何避免呢?
比较浮点值是否相等应始终使用某种形式的delta / epsilon比较:
if (Abs(value1 - value2) < 0.01 ) { // considered equal to 2 decimal places }