練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

DMonkey: Math.round()

コメントなし»

JavaScript と DMonkey における Math.round() の動作の違い。

JavaScript …… round half up

  • 小数部分が 0.5 より大きければ、次に大きい整数。
  • 小数部分が 0.5 なら、次に大きい整数(↑と同じ)。
  • 小数部分が 0.5 より小さければ、次に小さい整数。

DMonkey …… round half to even

  • 小数部分が 0.5 より大きければ、次に大きい整数。
  • 小数部分が 0.5 なら、最近接偶数への丸め
  • 小数部分が 0.5 より小さければ、次に小さい整数。
function r (n) {
  alert ('Math.round (' + n + ') == ' + Math.round (n));
}

r (-2.5);   // -2
r (-1.5);   // -2
r (-0.5);   // 0
r (+0.5);   // 0
r (+1.5);   // 2
r (+2.5);   // 2

関連: DMonkey: Global.parseInt()

Global.parseInt() に number 型を渡した時も同じ丸め方になります。これらの挙動は Delphi の System.Round() を規定の丸めモード(rmNearest)で呼び出しているためと思われます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です