- PR -

java.lang.Math rint

1
投稿者投稿内容
未記入じゃけんど
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 65
お住まい・勤務地: Osaka City
投稿日時: 2005-03-14 16:42
java.lang.Math
のrint(四捨五入)なのですが、

ImageRows = 1.5;
ImageRows = Math.rint(ImageRows);
System.out.println(ImageRows);

だと2.0となりますが、

ImageRows = 0.5;
ImageRows = Math.rint(ImageRows);
System.out.println(ImageRows);

だと0.0になるのはどうしてでしょうか?
整数に四捨五入してくれるはず。。。

シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2005-03-14 16:44
丸め誤差という単語で検索してみると良いと思います。
パテ太
ベテラン
会議室デビュー日: 2004/08/16
投稿数: 64
お住まい・勤務地: 千葉・東京
投稿日時: 2005-03-14 16:53
偶数丸めだから・・・だと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19008&forum=7
あたりで詳しく議論されています。

[編集内容]
リンク先は偶数丸めと.NetのMath.roundについて議論されています。

ただ、
JDKの日本語ドキュメントMathを読んだ限りでは
Java では「round が四捨五入」、「rint が偶数丸め」のように読めますがいかがでしょうか?

[編集内容]
×呼んだ→読んだ

[ メッセージ編集済み 編集者: パテ太 編集日時 2005-03-14 17:08 ]

[ メッセージ編集済み 編集者: パテ太 編集日時 2005-03-14 17:12 ]
1

スキルアップ/キャリアアップ(JOB@IT)