我有一个“四舍五入”的问题,我想了解为什么我在不同的设备上有不同的结果 . 此外,如果有人知道这些设备上有什么不同可以解释这种行为 .

所以,我有这个代码:

public final static double round(double val, double interval) {
  return Math.floor(0.5 + (val / interval)) * interval;
}

这是在第一个设备列表和第二个设备列表上返回不同的值

  • LG Optimus 2x - Android 2.3.6

  • HTC Sensation - Android 2.3.3

  • HTC Desire S - Android 2.3.5

  • HTC ONE S - Android 4.1.1

  • Galaxy Trend - Android 4.0.4

  • Mororola RAZR - Android 2.3.5

  • Sony Xperia S - Android 2.3.7

  • 三星Galaxy S2 - Android 2.3.6

  • 三星Galaxy Ace - Android 2.3.6

  • Nexus 5 - Android 4.4.2

  • Galaxy Xcover - Android 2.3.6

  • 摩托罗拉Defy - Android 2.2.2

第二名单:

  • 三星Google Nexus S - 4.1.1

  • Google Galaxy Nexus - 4.2.2

  • Nexus 4 - 4.3

  • 三星Galaxy S4 - 4.2.2

  • Sony Xperia Z - 4.2.2

  • 三星Galaxy note 2 - 4.1.2

  • 三星S3 - 4.2.2

  • Xperia SP - 4.1.2

  • Sony Xperia M - 4.1.2

  • Sony Xperia E - 4.1.1

  • Sony Xperia T - 4.1.2