- 締切済み
Round関数は四捨五入?
あるサイトで・・・ ”多くのRound関数は、偶数丸めを採用しており、 丸め単位のまんなかで、どっちつかずの場合は、偶数側を採用する。” ということが書いてあるのを読みました。 しかし、SQL Server2000のクエリで select round(1.25,1) と実行すると 1.2ではなく1.3 が返ってくるので、四捨五入されている気がします。 厳密な四捨五入と異なる値が返ってくるパターンはどういう式でしょうか? それとも、SQL Server2000のRound関数は厳密な四捨五入なのでしょうか? ご存知の方がいたら教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- iiikkk
- ベストアンサー率37% (92/247)
アメリカでは、四捨五入といったら偶数丸めだそうです。 私は、C#で開発を行っているのですが、C#では1.2と返ってきます。 1.24→1.2 1.25→1.2 1.26→1.3 1.25で1.3が返ってくるということは、SQLServer2000は厳密(日本風)な四捨五入なんでしょうね。 参考までに。
- miwaharu
- ベストアンサー率25% (29/112)
私も聞いた話なので、具体的な例は挙げられませんが、 十進数の0.1は2進数では、厳密には表示できないそうです。 ですから、2進数表記した場合、の中間値で偶数をとる という意味ではないでしょうか。
お礼
回答ありがとうございます。 私も聞いた話では、具体的におかしくなる場合があるらしいのです・・・ いったいどういう数値だとおかしくなるのか知りたいところです。 プログラムでRoundを使用しているので、四捨五入でない値が戻ってくると困るってしまうのです。
- pjunk
- ベストアンサー率32% (10/31)
JIS丸めだと思います。 コンピュータに限らず、実験データなどの丸め方が決められていて、ROUND関数などはそれにしたがっている場合が多いです。 JIS Z8401-1999で検索すればいくつかヒットします。
お礼
回答ありがとうございます。 参考URLのページを見てみました。 数値の丸めって、いろいろあって難しいのですね。
お礼
回答ありがとうございます。 言語によって違うのですね。 VBAで試してみたら、1.25→1.2でした。