使用最多两位小数

aps*_*aps 1 java double

我想使用双精度到2位小数.即,它将被存储最多2个小数位,如果比较两个双值,则比较应仅基于前2个小数位.怎么实现这样的事情?我的意思是存储,比较,一切都将基于前两位小数.其余的地方可能不同,大于,小于,无关紧要.

编辑 我的价值不大.比如最多从0到5000.但我必须多次乘以Cos A,Sin A,其中A的值在程序过程中不断变化.

编辑 在我的程序中查看一辆汽车以特定的速度移动,比如12米/秒.现在每隔几分钟,汽车改变方向,就像选择一个新的角度一样,开始沿着那个方向沿直线移动.现在每次移动,我都必须在地图上找到它的x和y位置.这将是currentX + velocity*Cos A和currentY + Velocity*Sin A.但由于这种情况经常发生,因此随着时间的推移会出现很多累积误差.怎么避免呢?

Mit*_*eat 12

比较浮点值是否应该始终使用某种形式的delta/epsilon比较:

if (Abs(value1 - value2) < 0.01 )
{
   // considered equal to 2 decimal places
}
Run Code Online (Sandbox Code Playgroud)