このコードには欠点がありますか?これはより高速な(そして正しい)バージョンのようjava.lang.Math.round
です?
public static long round(double d) {
if (d > 0) {
return (long) (d + 0.5d);
} else {
return (long) (d - 0.5d);
}
}
これは、Javaでは長い丸めをゼロに切り捨てるという事実を利用しています。
組み込みメソッドが処理する特別なケースがいくつかありますが、コードでは処理できません。ドキュメントから:
NaN
場合、結果は0です。Integer.MIN_VALUE
場合、結果はの値と等しくなりますInteger.MIN_VALUE
。Integer.MAX_VALUE
場合、結果はの値と等しくなりますInteger.MAX_VALUE
。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加