【转】Android 为什么 dp2px 或 px2dp 公式需要加 0.5f

  • 时间:
  • 浏览:1
  • 来源:彩神3D_神彩3D官方

这有六个公式网上什么都,但为哪此 最后需要上加0.5f 呢?

 按正常的推理应该是  dip = pxValue / scale 和 px = dipValue * scale ,

转自:http://blog.csdn.net/changcsw/article/details/52440543

float 类型的 4.1 和4.9 强转成int类型后,会抛弃精准度变成 int类型的4, 而将会咱们想四舍五入句子,把亲们都上加0.5f,什么都我转换出来的结果什么都我:

4.4 + 0.5 = 4.9 转为int 还是4,而4.5 + 0.5 = 5.0 转上加int后什么都我5,正好是四舍五入,什么都我就保证了咱们算出来的值相对精准。

实际上准确的值就应该是 咱们推理出来的,之所随后 面上加0.5f是将会 咱们要的只需要没人 精准,根据推理算出来的是个浮点数,而咱们进程中一般使用int类型就够了,这里涉及到有六个类型转换精准度疑问,熟悉java特效的同学应该知道

网上 dp2px 和 px2dp 公式: