忍者ブログ

DB, SQLServerの記事一覧: Javaってまだいけますか

Javaってまだいけますか

いっぱいいっぱいで無理なので学んだ事をいちいちメモっていくブログです。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SQLServerの小数点第7位の切捨て問題

SQLServer2005で、小数点第7位の切捨て問題回避策についてメモ。

以下のSQLを実行すると、3.666666という結果になります。
select 11 / 3.0


つまり、小数点第7位以下は切捨てになっています。
(四捨五入なら3.666667)

これが会計系のシステムで配賦計算などを行なう際に誤差を大きくする原因となったりしました。

その時とった回避策は以下の通り。

1.一旦計算対象の値を10倍します。⇒ 上の例だと、11×10=110
2.その値に対して計算処理を実施します。⇒ 110÷3=36.666666
3.計算結果を小数点題6位で四捨五入します。⇒ ROUND(36.666666, 5)=36.666670
4.それを最初にかけた値で割ります。⇒ 36.666670÷10=3.666667

これで小数点第7位を切り捨てではなくて四捨五入として扱えます。
上記の例だと10倍して最後に10で割りましたが、もっと小さな値を扱う場合は1000倍とかして計算するともっと精度が上がります。
PR

Navigation

Copyright ©  Javaってまだいけますか  All Rights Reserved.
  • 忍者ブログ
  • [PR]

menu

ブログ内検索

カテゴリー

カウンター

忍者アド

リンク

最新CM

[07/17 セバ]
[12/27 NONAME]

最新記事

(10/15)
(10/01)
(08/12)
(08/12)
(08/11)

プロフィール

HN:
takacy.k
年齢:
44
性別:
男性
誕生日:
1979/08/13
趣味:
自己紹介:
個人的なメモですので、投稿内容について真偽を保証するものではありません。また、当ブログの内容をご利用になったことによる(以下略)

最新TB

RSS

アーカイブ

アクセス解析