トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション



システム管理 ボードリーダー:米田 慎一

毎月第2、第4木曜日はボードリーダーからのレポートを掲載いたします。
 
   

2004年2月12日
『SQL Server float 型と 、.NET Framework の Double 構造体について』

システム管理 ML での話題を紹介します。
・tempdbの使用頻度を知りたい

現時点で ML のメンバーでなくても、
http://www.sqlpassj.org/bbs/ml_disp.aspx?forum_id=3
より閲覧可能です。

なかなか予定を決められなかったのですが、 PASSJ Conference 2004 出席できることになりました。
会員の皆さんと交流できるのを楽しみにしています。

[pml-web,00197] オプティミスティック向け記述と疑問点Re: 感想 2004年1月29日 『どっとねっとと雑多な日々 20』で発言したのですが、SQL Server float 型と、.NET Framework の Double 構造体に微妙な差があり、結構はまっています。

関係する 型をまとめると
・SQL Server の float 型
 - 1.79E + 308 through -2.23E - 308,
 0 and 2.23E -308 through 1.79E +308

・System.Double 構造体
 -1.79769313486232e308 から +1.79769313486232e308 までの倍精度 64 ビット数値
 Double.Epsilon 4.94065645841247e-324
 (0 より大きい最小の Double)

Epsilon は 1 より大きい最小か、問題ごとに指定のほうがなじみがあります。
また、使用法のイメージがつかめない定数でした。

・System.Data.SqlTypes の SqlDouble 構造体
 -1.79E +308 から 1.79E +308 の範囲内の浮動小数点
 .Epsilon は存在しない。
 Double.Epsilon を代入可能。

C# 言語の仕様
4.1.6 浮動小数点型
を参照すると
 .NET Framework では、正規化されない浮動小数点数も有効な非ゼロ値としていて、SQL Server の値の範囲との差になっています。
(Double.Epsilon は SQL Server の有効な値から外れていました)

さまざまな言語をカバーできるように、ハードウエアの限界を削らない決め方なのかもしれません。

ボードリーダーレポート トップページへ

 

 
PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.