VIDTAKER.COM

Q&A

28.080000000000002 DataGridViewのようになぜ28.08ショーを開く - 。NET Frameworkが答えます


私は困惑しています。私は、SQL Server Expressデータベースと呼ばれる列を持つ
"経度"フロートです。私はDataGridViewの、テーブルを表示する
いくつかのデータベースだけで小数点以下2桁を持つ数値の
と* 15 * 10進の場所を示し、これまでほんの少しオフ(されている
件名に含まれる例では、約2Eは- 15)。

私はこのコラム上の任意の操作をしていないよ。それはちょうど実行しているストアド
テーブルの上にかなり基本的なSELECTを実行する手順に従います。私は実行する場合
Management StudioのExpressでストアドプロシージャは、すべての数値が表示
(ちょうど小数点以下2桁)の罰金。

ここで何が起きてるんだ?

おかげで、

=ダン



41 Replies

1)

FLOATのは、おおよそのデータ型です。場合は、次に使用する精度が必要な場合
FLOAT型の代わりに、適切な10進数です。


"ダニエルマンズは"<メッセージにdanthman@cox.netwrote~~V
ニュース:1168376034.199558.192380 @ k58g2000hse.googlegrのoups.com ...
引用:
私は困惑しています。私は、SQL Server Expressデータベースと呼ばれる列を持つ
"経度"フロートです。私はDataGridViewの、テーブルを表示する
いくつかのデータベースだけで小数点以下2桁を持つ数値の
と* 15 * 10進の場所を示し、これまでほんの少しオフ(されている
件名に含まれる例では、約2Eは- 15)。
>
私はこのコラム上の任意の操作をしていないよ。それはちょうど実行しているストアド
テーブルの上にかなり基本的なSELECTを実行する手順に従います。私は実行する場合
Management StudioのExpressでストアドプロシージャは、すべての数値が表示
(ちょうど小数点以下2桁)の罰金。
>
ここで何が起きてるんだ?
>
おかげで、
>
=ダン
>


2)

ダニエルマンズ<はdanthman@cox.netwrote~~V:
引用:
私は困惑しています。私は、SQL Server Expressデータベースと呼ばれる列を持つ
"経度"フロートです。私はDataGridViewの、テーブルを表示する
いくつかのデータベースだけで小数点以下2桁を持つ数値の
と* 15 * 10進の場所を示し、これまでほんの少しオフ(されている
件名に含まれる例では、約2Eは- 15)。
>
私はこのコラム上の任意の操作をしていないよ。それはちょうど実行しているストアド
テーブルの上にかなり基本的なSELECTを実行する手順に従います。私は実行する場合
Management StudioのExpressでストアドプロシージャは、すべての数値が表示
(ちょうど小数点以下2桁)の罰金。
>
ここで何が起きてるんだ?
を参照してhttp://www.pobox.com/〜のスキート/ csharp / floatingpoint.html

参考のために、最も近いは28.08をダブルコンフォーマンス正確には
28.0799999999999982946974341757595539093017578125

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

3)

ダニエル、

フロートは、おおよそのデータ型です。 BOLのルックアップ近似数値データ。

- ビル

"ダニエルマンズは"<メッセージにdanthman@cox.netwrote~~V
ニュース:1168376034.199558.192380 @ k58g2000hse.googlegrのoups.com ...
引用:
私は困惑しています。私は、SQL Server Expressデータベースと呼ばれる列を持つ
"経度"フロートです。私はDataGridViewの、テーブルを表示する
いくつかのデータベースだけで小数点以下2桁を持つ数値の
と* 15 * 10進の場所を示し、これまでほんの少しオフ(されている
件名に含まれる例では、約2Eは- 15)。
>
私はこのコラム上の任意の操作をしていないよ。それはちょうど実行しているストアド
テーブルの上にかなり基本的なSELECTを実行する手順に従います。私は実行する場合
Management StudioのExpressでストアドプロシージャは、すべての数値が表示
(ちょうど小数点以下2桁)の罰金。
>
ここで何が起きてるんだ?
>
おかげで、
>
=ダン
>


4)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
FLOATのは、おおよそのデータ型です。場合は、次に使用する精度が必要な場合
FLOAT型の代わりに、適切な10進数です。
10進数は、は"おおよその"浮動小数点、そのどちらも表すことができるのように
あらゆる合理的な数を正確に。彼らはちょうど別の拠点を持って
- 10を正確に、しかしされる0.1234のような番号を表す
1 / 3と同じようにフロートが不正確。

両方の浮動小数点型です - 浮動小数点数は浮動小数点*バイナリ*ポイントです
タイプ、および10進数の浮動小数点* 10進*ポイントタイプです。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

5)

ジョンスキート[C#のMVP] <はskeet@pobox.comwrote~~V:
引用:
アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
FLOATのは、おおよそのデータ型です。場合は、次に使用する精度が必要な場合
FLOAT型の代わりに、適切な10進数です。
>
10進数は、は"おおよその"浮動小数点、そのどちらも表すことができるのように
あらゆる合理的な数を正確に。彼らはちょうど別の拠点を持って
- 10を正確に、しかしされる0.1234のような番号を表す
1 / 3と同じようにフロートが不正確。
>
両方の浮動小数点型です - 浮動小数点数は浮動小数点*バイナリ*ポイントです
タイプ、および10進数の浮動小数点* 10進*ポイントタイプです。
謝罪 - いくつかの明確化は、ここが必要です。上記のは確かです
C#の浮動小数点数の真/ 10種類。採掘権の私はいないビット(後
SQL Serverは、1分で入手可能)私は信じて助けているすべてのこと
定義されて精度とスケールは、DECIMALカラムを持つ特定の列
SQL Serverで効果的に"固定ポイントは"(値そのものをすなわち
どこに小数点が指定しない場合は、列はありません)。

それはそれはわけではない"方法がFLOATのはないが、正確な"でそれだけで
ストレージ(したがって、範囲と精度可能)変更します。

上記はおそらくひどく明確ではなく、一番下の行であること
浮動小数点数が非常に正確な数です - それは正確な値を持つ
- ではなく、すべての数は正確に浮動小数点として表現することができます
ベース/記憶領域のサイズなど)指定された番号(。それが真の固定小数点のだ
数値としても、それは以上の10進を行う"確定"ではない
ビジネス計算のため、それがベースを使用して実際に適切な
10ベース2の代わりに。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

6)

この議論を見てください:

(なぜ9.09 == 9.0899999999999999)
http://www.nnseek.com/e/microsoft.pu...9_089999999999
9999_19543198t.html

よろしく

-
チョロレノン
Bs.As.
ARGに


"ダニエルマンズは"<メッセージにdanthman@cox.netwrote~~V
ニュース:1168376034.199558.192380 @ k58g2000hse.googlegrのoups.com ...
引用:
私は困惑しています。私は、SQL Server Expressデータベースと呼ばれる列を持つ
"経度"フロートです。私はDataGridViewの、テーブルを表示する
いくつかのデータベースだけで小数点以下2桁を持つ数値の
と* 15 * 10進の場所を示し、これまでほんの少しオフ(されている
件名に含まれる例では、約2Eは- 15)。
>
私はこのコラム上の任意の操作をしていないよ。それはちょうど実行しているストアド
テーブルの上にかなり基本的なSELECTを実行する手順に従います。私は実行する場合
Management StudioのExpressでストアドプロシージャは、すべての数値が表示
(ちょうど小数点以下2桁)の罰金。
>
ここで何が起きてるんだ?
>
おかげで、
>
=ダン
>


7)

私はおおよそのない"意味"であることは28.08を置く場合は、
(5,2)10、あなたは28.08000000000000002を取得するつもりはありません


"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200e1d1681ab555d98d75fは@ msnews.microsoft.cオム...
引用:
ジョンスキート[C#のMVP] <はskeet@pobox.comwrote~~V:
引用:
>アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
FLOATのは、おおよそのデータ型です。場合は、次に使用する精度が必要な場合
FLOAT型の代わりに、適切な10進数です。
>>
> 10進数は、は"おおよその"浮動小数点、そのどちらも表すことができるのように
正確にあらゆる合理的な>数字。彼らはちょうど別の拠点を持って
>は、 - 10正確に、しかしされる0.1234のような番号を表す
同じようにフロートは1 / 3>正確な。
>>
>はどちらも浮動小数点型です - 浮動小数点数は浮動小数点*バイナリ*ポイントです
>と入力し、10進数の浮動小数点* 10進*ポイントタイプです。
>
謝罪 - いくつかの明確化は、ここが必要です。上記のは確かです
C#の浮動小数点数の真/ 10種類。採掘権の私はいないビット(後
SQL Serverは、1分で入手可能)私は信じて助けているすべてのこと
定義されて精度とスケールは、DECIMALカラムを持つ特定の列
SQL Serverで効果的に"固定ポイントは"(値そのものをすなわち
どこに小数点が指定しない場合は、列はありません)。
>
それはそれはわけではない"方法がFLOATのはないが、正確な"でそれだけで
ストレージ(したがって、範囲と精度可能)変更します。
>
上記はおそらくひどく明確ではなく、一番下の行であること
浮動小数点数が非常に正確な数です - それは正確な値を持つ
- ではなく、すべての数は正確に浮動小数点として表現することができます
ベース/記憶領域のサイズなど)指定された番号(。それが真の固定小数点のだ
数値としても、それは以上の10進を行う"確定"ではない
ビジネス計算のため、それがベースを使用して実際に適切な
10ベース2の代わりに。
>
-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合


8)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
私はおおよそのない"意味"であることは28.08を置く場合は、
(5,2)10、あなたは28.08000000000000002を取得するつもりはありません
Trueを返します。あなたが分割1〜3で、SQLサーバーを求める場合ただし、確かに
* 10進数で正確な答えを得る*されませんが(またはFLOAT、確かに)。

私は区別をするために迷惑だ理由はそこにあるさ
広範な神話は、10進型は、"方法の正確な"でその浮遊
バイナリポイントの種類ではない - それはちょうど人を有するすることが自然
バイアスは10基に。あなたは、基本3(または7、または11など)数字を考慮すれば
代わりに、DECIMALは、同じようにFLOAT型として悪い。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合



9)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
>は、私はおおよそのない"意味"であることは28.08を置く場合は、
> 10進数の(5,2)では、28.08000000000000002を取得するつもりはありません
>
Trueを返します。あなたが分割1〜3で、SQLサーバーを求める場合ただし、確かに
* 10進数で正確な答えを得る*されませんが(またはFLOAT、確かに)。
>
私は区別をするために迷惑だ理由はそこにあるさ
広範な神話は、10進型は、"方法の正確な"でその浮遊
バイナリポイントの種類ではない -
私は、私たちのほとんどは、@ fooは= 0.33とSETの違いを認識と思う
セット@ fooが= 1.0 / 3 ...前者で、私たちは"正確なを制限する"を選択している
結果の自然、私たちは対照的にDECIMALのにそれを格納するために選択した場合
FLOAT型には、我々は0.33ごとに時刻を取得するつもりか...



10)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
私はおおよそのない"意味"であることは28.08を置く場合は、
(5,2)10、あなたは28.08000000000000002を取得するつもりはありません
Trueを返します。あなたが分割1〜3で、SQLサーバーを求める場合ただし、確かに
* 10進数で正確な答えを得る*されませんが(またはFLOAT、確かに)。

私は区別をするために迷惑だ理由はそこにあるさ
広範な神話は、10進型は、"方法の正確な"でその浮遊
バイナリポイントの種類ではない -
>
私は、私たちのほとんどは、@ fooは= 0.33とSETの違いを認識と思う
セット@ fooが= 1.0 / 3 ...前者で、私たちは"正確なを制限する"を選択している
結果の自然、私たちは対照的にDECIMALのにそれを格納するために選択した場合
FLOAT型には、我々は0.33ごとに時刻を取得するつもりか...
あなたがされた場合でもで浮動小数点のバイナリ小数点数を表現するバイナリ
形式(例えば、0.01101)その後、戻って同じ結果を得るだろうとき
のバイナリを再フォーマット。リテラルフォーマット利用の性質
かどうかのデータ型は基本的に、またはおおよそのものです変更されません
れていません。

それはので2進浮動小数点の"おおよその"自然ではない
浮動小数点、および10進形式を使用して変更されません。ただの
できない正確ではないすべての* 10 *の番号を表すために
すべての数字と同じ。

私は個人的の*は、*よく分かっていない - それゆえ人々(例えば信じる
このスレッドで3つの異なる人)浮動小数点のバイナリポイントを参照する
、数字"近似"は、彼らがすべてではないしている - 彼らは正確にしている
で約数に等しくなる可能性があります番号を
もともとするように設定してみました。

私の言いたいことの一例として、整数型を考える。それらは
"近似"? [いいえ] - 彼らは正確な数値を表しています。ただし、場合
(C#で):

int型はx =(int)が10.3;

xの値は10.3されず、それは10になります。 10は、正確な数ですが、
10.3からの変換は近似された。同じことが真である場合
フロートとDOを持って

セット@ my_float = 0.33(SQL)を
または
myFloat = 0.33fフロート、(C#の)

my_floatが、正確な数を表すからの変換
リテラル"0.33"はバイナリ浮動小数点に近似ものです。
浮動小数点のバイナリポイント変換との違い
整数への変換は以前のです:

1)整数の変換は明示的に、そのデータは、可能性があります強調している
失われた
2)10進数の値としてフォーマット、整数は常に""きれいです
フロートに対して頻繁に(この件名の行によって証明されていません
スレッド)

私はその理由を記述するためのいずれかとして、これらのバイナリ浮動表示されない
として小数点数"近似"は整数は、記載されていません
方法です。

浮動小数点値を考えると、私は*正確に*を使用すると言うことができるか、その数
10進拡張としてである。センスが値(または型)は何なの
"近似"?ことが重要(IMO)はないのバイアスに目がくらんするのか
という事実は、人間が多い小数の数値を表しています。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

11)


"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200e28abe652c4798d760 @ msnews.microsoft.coメートル..を
引用:
アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
>は、私はおおよそのない"意味"であることは28.08を置く場合は、
> 10進数の(5,2)では、28.08000000000000002を取得するつもりはありません
>
Trueを返します。あなたが分割1〜3で、SQLサーバーを求める場合ただし、確かに
* 10進数で正確な答えを得る*されませんが(またはFLOAT、確かに)。
それは一般的に数字の欠点ではなく、SQL Serverの
数値の表現です。 T - SQLを実としてフロート定義
"おおよその"データ型のため、使用して、IEEE標準のバイナリ
表現は有効な値の範囲内のすべての数字に格納できる
正確な表現です。また、アロンが指摘したように、あなたが"28.08"に入れば
あなたが戻ることができます"28.08000000000000002"。

http://msdn2.microsoft.com/en-us/library/ms173773.aspx

10進および数値は、"正確な"データ型はすべて表すことができるためです
正確な表現で有効な値のその範囲の数値。
すなわち、"28.08"が正確に28.08として格納されます。
引用:
私は区別をするために迷惑だ理由はそこにあるさ
広範な神話は、10進型は、"方法の正確な"でその浮遊
バイナリポイントの種類ではない - それはちょうど人を有するすることが自然
バイアスは10基に。あなたは、基本3(または7、または11など)数字を考慮すれば
代わりに、DECIMALは、同じようにFLOAT型として悪い。
指摘として、10進型は"正確な"という点ですることができます"正確に"
有効な値の、その範囲内のすべての1つの番号を表しています。 IEEE規格
浮動小数点バイナリ型は、"近似"彼らができないためです。



12)


"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200e3c8ba71f7bf098d761 @ msnews.microsoft.cオム...
引用:
それはので2進浮動小数点の"おおよその"自然ではない
浮動小数点、および10進形式を使用して変更されません。ただの
できない正確ではないすべての* 10 *の番号を表すために
すべての数字と同じ。
それはヘア分割のように思える、実際の。
引用:
私は個人的の*は、*よく分かっていない - それゆえ人々(例えば信じる
このスレッドで3つの異なる人)浮動小数点のバイナリポイントを参照する
、数字"近似"は、彼らがすべてではないしている - 彼らは正確にしている
で約数に等しくなる可能性があります番号を
もともとするように設定してみました。
このニュースグループの人々は2進浮動小数点数として参照してください
"おおよその"それはANSI SQL標準は、それらを呼び出すだからです。

"データ型はNUMERIC型は、DECIMAL、INTEGER及びSMALLINTデータ型は、総称している
、正確な数値型と呼ばれる。データ型FLOAT型は、REAL、とDOUBLE
精度は総称としての数値型を近似するために呼ばれます。正確な
数値型と近似数値型は、総称している
数値型。数値型の値は、数値と呼ばれます。" - ANSIの
SQL - 92の



13)

あなたは10進数値にバイアスを見せている。が完全に有効です。
引用:
理由は、そのバイアスを持っていることdecimal型を持っているが、必要
そのバイアスがそこにあることを認めます。
まあ、ええ、シャーロック。

OPはデータベースに28.08を通過した。彼は価値のバック、頼んだ
別の答えを得た。彼はどのように修正するように求め、私は、ええ、私たちのバイアスを推測する
この場合におけるDECIMALを使用してに向かっている。どこに関係なく、どのような幻想の
世界に3つらを基に変換しています。ら、あなたが入力28.08とし、求める
値のバック、あなたはまだ28.08を取得するつもりだ。これは、数学ではない
理論やMSDNまたはベース3または1 / 3に関するいくつかの宗教戦争かどうか
の基準'の定義は"おおよその"あなたに受け入れられると思います。それはだ
1 / 3のような既知の値を(式ではなく、保存)約固定
小数点以下の桁数、および、同じ番号を取得するたびに、で
確定ファッション。





14)

あなたは10進数値にバイアスを見せている。が完全に有効です。
引用:
理由は、そのバイアスを持っていることdecimal型を持っているが、必要
そのバイアスがそこにあることを認めます。
まあ、ええ、シャーロック。

OPはデータベースに28.08を通過した。彼は価値のバック、頼んだ
別の答えを得た。彼はどのように修正するように求め、私は、ええ、私たちのバイアスを推測する
この場合におけるDECIMALを使用してに向かっている。どこに関係なく、どのような幻想の
世界に3つらを基に変換しています。ら、あなたが入力28.08とし、求める
値のバック、あなたはまだ28.08を取得するつもりだ。これは、数学ではない
理論やMSDNまたはベース3または1 / 3に関するいくつかの宗教戦争かどうか
の基準'の定義は"おおよその"あなたに受け入れられると思います。それはだ
1 / 3のような既知の値を(式ではなく、保存)約固定
小数点以下の桁数、および、同じ番号を取得するたびに、で
確定ファッション。





15)

マイクのC#<xyz@xyz.comwrote~~V:
引用:
"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200e3c8ba71f7bf098d761 @ msnews.microsoft.cオム...
引用:
それはので2進浮動小数点の"おおよその"自然ではない
浮動小数点、および10進形式を使用して変更されません。ただの
できない正確ではないすべての* 10 *の番号を表すために
すべての数字と同じ。
>
それはヘア分割のように思える、実際の。
私は1 / 3は、番号が認識については何も毛分割を参照してください。
引用:
引用:
私は個人的の*は、*よく分かっていない - それゆえ人々(例えば信じる
このスレッドで3つの異なる人)浮動小数点のバイナリポイントを参照する
、数字"近似"は、彼らがすべてではないしている - 彼らは正確にしている
で約数に等しくなる可能性があります番号を
もともとするように設定してみました。
>
このニュースグループの人々は2進浮動小数点数として参照してください
"おおよその"それはANSI SQL標準は、それらを呼び出すだからです。
あなたは、複数のニュースグループはここ関与していることがあります...
引用:
"データ型はNUMERIC型は、DECIMAL、INTEGER及びSMALLINTデータ型は、総称している
、正確な数値型と呼ばれる。データ型FLOAT型は、REAL、とDOUBLE
精度は総称としての数値型を近似するために呼ばれます。正確な
数値型と近似数値型は、総称している
数値型。数値型の値は、数値と呼ばれます。" - ANSIの
SQL - 92の
ちょうどANSIは何か、それが正しいわけではないというため、IMOの。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

16)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
あなたは10進数値にバイアスを見せている。が完全に有効です。
理由は、そのバイアスを持っていることdecimal型を持っているが、必要
そのバイアスがそこにあることを認めます。
>
まあ、ええ、シャーロック。
これは、存在するすべての目にも止まらぬであるという事実と思われる
1 / 3の数である。
引用:
OPはデータベースに28.08を通過した。彼は価値のバック、頼んだ
別の答えを得た。彼はどのように修正するように求め、私は、ええ、私たちのバイアスを推測する
この場合におけるDECIMALを使用してに向かっている。
そして私はなかった良いアイデアは言ったことはない。
引用:
どこに関係なく、あなたは3をベースに変換しているものは世界ファンタジー
ら。ら、あなたが入力28.08をクリックし、値を問い返す、あなたがしている
まだ28.08を取りに行く。
いいえ、基本3場合は、入力の数を、それが10基に、変換し、
後でベース3には、必要になります*いない*(常に同じ。)を取得、それを変換する
数が戻って、まったく同じ理由28.08は戻ってこないの
28.08です。情報が失われます。
引用:
これは、数学の理論やMSDNまたはベースではない3または1 / 3またはいくつかの
かどうかについては考えて宗教戦争の基準'の定義
"おおよその"あなたに許容されます。
それはまさにスレッドのこの部分はあるんです。私は決して
OPはの問題を解決するに難癖をつける、単に用語
使用されます。
引用:
これは、約1 / 3のような既知の値を(式ではなく、保存)です
1 / 3は、既知の値が - ただのリテラル"0.1"ベース3のように思います。
引用:
小数点以下の桁固定番号と同じ番号を取得する
戻るたびに、決定的なファッションです。
あなたもバイナリ浮動小数点 - だけではロスレスで決定を得る
ベース10からの変換は、それがすべてだ。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合



17)

ジョンスキート[C#のMVP] <はskeet@pobox.comwrote~~V:

<snip>

適切にこの種のものについてはニュアンスのためにスリープ状態に失敗したこと
(シャレではないもの)のラウンド私の頭の浮動小数点、私はそれがおそらく最良だと思う
誰も私がスレッドから、この時点でオフに署名する。これではない
どのような方法私が作ったの投稿に返信する人々をしないようにしようとするもの
短い私は最後の単語を取得するつもりはないよ前にしながら - 。

私は議論を楽しんできた、と私にもある場合、すべての願っています。ベッドに戻るために
数時間は、うまくいけばいくつかの残りの部分を取得する...

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

18)

こんにちはみんな、

それは非常に興味深いですが、私はこの長いスレッドは質問から参照してください
/少女VB.Netの男が、彼らはこのおそらく既にので、次のがあなたの時間知っている
あなたはこれを認識し、関連しないニュースグループを切断します。

事前のおかげで、

コア



19)

マイクC#は書き込み:
引用:
事実を[...]は、無限に
循環小数は、*正確DECIMALまたはNUMERICを使用して*表すことができない
タイプは、あなたやそのことについては誰にも納得がいく必要があります。
事実の規模の非循環小数1または2(1つまたは2つの
数字は小数点以下)*正確にFLOAT型を使用して*保存することはできません
REALデータ型は、多くの人々には驚きとしています。 [...]
私は両方のステートメント上記に同意する。しかし、あなたが考慮しなければならないこと
数は0.2例(同様28.08)としては、"無限に繰り返している
2進数を"(ではないが"無限に繰り返し10")です。

基本2で0.2の表現は:
0.0011001100110011 ...
読みやすいように、基本- 16で同じこと(16進数)、になります:
0.3333 ...

基本2で0.08の表現は:
0.00010100011110101110 00010100011110101110 00010100011110101110 ...
読みやすいように、される16進数で:
0.147AE147AE147AE ...

これは多くの人々に、しかし、驚きを来るかもしれないあなたが本当に考えてみれば
それは、それが正常であることの基本- 10で表現することができますいくつかの数字
小数点以下の桁のfinit数とはされる
ベース2桁の無限で表されます。明らかに、
これらの数字は、正確にSQLのfloat型または実を使用して格納することはできません
データ型(これは基本2を使用します)。

問題からの変換などの数を、表示を回避する
ベース2に戻るベース10、最後のビットも(無視されるため
彼らはとにかく)、その結果全体の10進数字を形成することはできません
時には期待される結果(例えば0.2)ではなく、常にであることを起こる。


寄せてくれた


20)


"寄せてくれたSocolは"<メッセージにrsocol@gmail.comwrote~~V
ニュース:1168453698.091550.238250 @ p59g2000hsd.googlegrのoups.com ...
引用:
マイクC#は書き込み:
私は両方のステートメント上記に同意する。しかし、あなたが考慮しなければならないこと
数は0.2例(同様28.08)としては、"無限に繰り返している
2進数を"(ではないが"無限に繰り返し10")です。
もちろんです。
引用:
これは多くの人々に、しかし、驚きを来るかもしれないあなたが本当に考えてみれば
それは、それが正常であることの基本- 10で表現することができますいくつかの数字
小数点以下の桁のfinit数とはされる
ベース2桁の無限で表されます。明らかに、
これらの数字は、正確にSQLのfloat型または実を使用して格納することはできません
データ型(これは基本2を使用します)。
それはまさに私が氏スキートと協議したポイントです。
"近似"は変換こその遊びに由来する
ベース10ベース2 FLOATとリアルタイプのに対し、DECIMALとと
NUMERIC型の種類は、おそらくバイナリ符号化10進数(おそらくいくつかのフォームを使うと
パックBCDのか、いくつかの類似アルゴリズム)の数を表すためにどの
ストレージ処理中にデータの損失を防ぎます。



21)

マイクのC#<xyz@xyz.comwrote~~V:

<snip>
引用:
引用:
ちょうどANSIは何か、それが正しいわけではないというため、IMOの。
>
私は賛成です。しかし、彼らはうまくこの1つでした。場合を除き
"あなたは無限に繰り返しを格納することはできませんより引数を見つけることができます
とマシン上で固定小数点型正確に10進数、有限
メモリの量は、したがって、固定小数点型*正確ではありません*
タイプは"では、または他の誰のだけはANSIを説得するつもりはない
あなたの原因の正当性。
ちょうど*私はここに抵抗することはできません1 *ポイント:私は10進数と主張したことがない
正確ではありません。私は、フロートが正確すぎると主張した。

したら、浮動小数点値を持っている場合は、常にそれを変えることができる正確な
10進文字列が、実際のところ私が持っているC#のコードを参照、それを行うには
から
http://www.pobox.com/〜のスキート/ csharp / floatingpoint.html
また、オンライン版は、10進数の値にすることができますタイプです
あなたが最も近い二重を見つけるために、としたいし、正確な値を示す
二重の。 (これらは、Cは#floatとdoubleが、原則は、
同じ。)たとえば、最も近い二重28.08は、*は正確に*
28.0799999999999982946974341757595539093017578125

マイポイント(私は何度も繰り返して思ったが、はっきりしない
十分に)それは10進数にリテラルからの変換がないです
"おおよその"変換が浮動小数点の値、*は*
値そのものを浮かんでいる。基本約3ポイントは、れるのと同じです
真 - 10進数にベース3の数に変換すると、で終わるだろう
その数に最も近い10進される正確な値が、その可能性があります
正確に元の値と同じことが。 (1 / 3など)を0.333になる。
どちらの場合も変換は"損失は"しかし、結果の値は、
正確な。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

22)

ちょうど*私はここに抵抗することはできません1 *ポイント:私は10進数と主張したことがない
引用:
正確ではありません。私は、フロートが正確すぎると主張した。
28.08のような場合、私はハードコード値を問題は、さとFLOATに格納、
私はその値の問い返す、私は正確な値を取得することはできません。それはない
私には問題が近似の変換、または中に発生した場合
翻訳、またはストレージ、または神の介入。値私は思っていた
データベースに送信される私に変更されました。





23)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
ちょうど*私はここに抵抗することはできません1 *ポイント:私は10進数と主張したことがない
正確ではありません。私は、フロートが正確すぎると主張した。
>
28.08のような場合、私はハードコード値を問題は、さとFLOATに格納、
私はその値の問い返す、私は正確な値を取得することはできません。
確かに - とは、なぜあなたはDECIMALのこのような状況で使用したいと思って。
私は少しにおけるDECIMALの有用性を否定したことがない。
引用:
その近似中に発生した場合それは私には関係ない
変換、または翻訳、またはストレージ、または神の介入。
値私はデータベースに私に変更されて送信されると思っていた。
それはあなたのするが、種類の説明の精度事項問題ではない可能性があります
私に。それは人々"は、オブジェクトによって渡されると主張しようなものだ
C言語ではデフォルトで参照"#、または"値型は、スタック上に住んでいること
参照型はヒープ"に住んでいる - 両方のステートメントは大丈夫最初に聞こえる
聴覚が、掘るもう少し深く、彼らが不正確だ。私がしたい
スタートから(正確にどこでできますが、少なくとも)。なぜそれがないと主張する
おおよそのではなく、変換される型?どこだ
利点?

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

24)

なぜそれがないと主張する
引用:
おおよそのではなく、変換される型?どこだ
利点?
SQL Serverのためのないもっともらしい区別されます。私は28.08、私は渡す
戻って多くの小数を取得し、それは本当にどうかは、型がない無関係です
変換または何か他の。





25)


"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200f5c7f52eb8b8698d773は@ msnews.microsoft.cオム...
引用:
なぜそれがないと主張する
おおよそのではなく、変換される型?どこだ
利点?
いくつかのMVPはにジャンプしますので、と主張変換することはできませんが
技術と呼ばれる"近似"。結局のところ、変換は
ハードと同じ機能を毎回実行する命令のセット符号化
同じ値を同じ入力するたびに指定された生成します。かなり正確なサウンド
私に。



26)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
なぜそれがないと主張する
おおよそのではなく、変換される型?どこだ
利点?
>
SQL Serverのためのないもっともらしい区別されます。私は28.08、私は渡す
戻って多くの小数を取得し、それは本当にどうかは、型がない無関係です
変換または何か他の。
あなたはどのような表面の下に起こっているのを理解する好きではないのですか?なぜ
ある損失が、だとなぜ*の損失を渡す場合に*ない
既にバイナリ値、なぜ(もしあなたがこれを行うことができた)
あなたにも拠点を3値が渡された場合あなたはまだ情報が失われると思います
DECIMALの?

<shrugI私はちょうど好奇心と思うよ。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

27)

マイクのC#<xyz@xyz.comwrote~~V:
引用:
"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200f5c7f52eb8b8698d773は@ msnews.microsoft.cオム...
引用:
なぜそれがないと主張する
おおよそのではなく、変換される型?どこだ
利点?
>
いくつかのMVPはにジャンプしますので、と主張変換することはできませんが
技術と呼ばれる"近似"。結局のところ、変換は
ハードと同じ機能を毎回実行する命令のセット符号化
同じ値を同じ入力するたびに指定された生成します。かなり正確なサウンド
私に。
それはそれは決定的な、ということだが、それは正確です。確かに*は*
近似、それは情報を失うだ。私は確かにいるはずだ
完全にその議論の"おおよその"側面を議論する:ヒーリング)


どちらか、またはアーロンは実際にあなたが分離する同意しない
"変換"それは*変換*だから"型"の考え方
おおよそのではなく、float型そのもの?その場合は、それはおそらくだ
議論を続けて(私の5時ポストにもかかわらず、価値がある!) - いない場合は、それはだ
我々はすべての/'ことについて構わないかどのくらいのおそらくほんの
型と変換の間の区別。それが問題だ
意見とおそらくないについて議論価値があります。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

28)

引用:
引用:
その近似中に発生した場合それは私には関係ない
変換、または翻訳、またはストレージ、または神の介入。
値私はデータベースに私に変更されて送信されると思っていた。
>
それはあなたのするが、種類の説明の精度事項問題ではない可能性があります
私に。それは人々"は、オブジェクトによって渡されると主張しようなものだ
C言語ではデフォルトで参照"#、または"値型は、スタック上に住んでいること
参照型はヒープ"に住んでいる - 両方のステートメントは大丈夫最初に聞こえる
聴覚が、掘るもう少し深く、彼らが不正確だ。私がしたい
スタートから(正確にどこでできますが、少なくとも)。なぜそれがないと主張する
おおよそのではなく、変換される型?どこだ
利点?
利点は、あなたが有用な定義を残しているです。あなたの
推論は、ないデータ型は、これまで可能な"正確な"という用語は、表示されるので、
本質的に役に立たない。我々は、これまでの1 / 3の"正確な"値を格納することはできません
意味のある方法です。

この場合において、用語は、多かれ少なかれ方法を記述しています
データ型は、実行すると予想することができます。有効な値を格納する
(28.08)DECIMALの列には、正確に同じものを得ることを期待することができます
値再び。ストアFLOATの同じ値とを取得
近似。


29)

Shuuraiは書き込み:
引用:
我々は、これまでの1 / 3の"正確な"値を格納することはできません
意味のある方法です。
憎しみはこのスレッドにさらにノイズを追加するが、私はdissagree。

あなたは正確には、基本10だけでは1 / 3を格納できます。
あなたは、例えばベースを使用する場合24(人日で基本24を使用しない
日常的には、日を正確に1 / 3を格納することができます長い目。
8時間。

30)

Shuurai <はShuurai11@hotmail.comwrote~~V:
引用:
引用:
それはあなたのするが、種類の説明の精度事項問題ではない可能性があります
私に。それは人々"は、オブジェクトによって渡されると主張しようなものだ
C言語ではデフォルトで参照"#、または"値型は、スタック上に住んでいること
参照型はヒープ"に住んでいる - 両方のステートメントは大丈夫最初に聞こえる
聴覚が、掘るもう少し深く、彼らが不正確だ。私がしたい
スタートから(正確にどこでできますが、少なくとも)。なぜそれがないと主張する
おおよそのではなく、変換される型?どこだ
利点?
>
利点は、あなたが有用な定義を残しているです。あなたの
推論は、ないデータ型は、これまで可能な"正確な"という用語は、表示されるので、
本質的に役に立たない。我々は、これまでの1 / 3の"正確な"値を格納することはできません
意味のある方法です。
いいえ、私の定義で、ほぼすべてのデータ型は正確です。 (私はできません
データ型の間にはされていません、素っ気ない。)変換(で考える
少なくとも数値のもの)が損失する傾向がある。

別の例を見てみましょう - 整数。 INTEGERはおおよそのですか?私は
そう言うだろう - しかし、もしあなたがINTEGERに28.08に変換しようと、
その変換は不可逆であるため、あなたは確かに、情報が失われると思います。
整数は、ANSIの"おおよその"型として記述?私はそれを疑う
何とか...
引用:
この場合において、用語は、多かれ少なかれ方法を記述しています
データ型は、実行すると予想することができます。有効な値を格納する
(28.08)DECIMALの列には、正確に同じものを得ることを期待することができます
値再び。ストアFLOATの同じ値とを取得
近似。
だからない場合非可逆変換が関与している、そこの損失がない
については、しかし*は*非可逆変換に関与、
情報が失われます。それはまさに驚きではない、何を持っている
私が見ることができるタイプ自身に限り、ありません。

私はなぜ人々はそれが非常に困難/理解説明すると信じているが表示されない
それは損失が変換ではなく、タイプだ。

あなたは浮動小数点のバイナリポイントのデータではなく10進数よりも渡す場合注意してください
データには、*は、情報を失う*されません - ちょっと、もう一度、ないので
変換が関与。を入力自体とみなすなら、それは明確ではない
損失されて、それは絶対にするときに、別のコンバージョンは明らかだ
型から。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

31)

ため、> SQL Serverではないもっともらしい区別されます。私は渡す
引用:
引用:
> 28.08、私
>に戻っ多くの小数を取得し、それは本当に無関係かどうかをことだ
>タイプ
変換または何か他の>。
>
あなたはどのような表面の下に起こっているのを理解する好きではないのですか?
それは、必ず興味深い。しかし、私は基準の問題を持っていない
"おおよそのデータ型"それは説明するためのものだが、それを呼び出してデータをどのよう
潜在的に異なるが提供される方法から格納される
データベース。私は複数回、それは実際には関連このではない言ったように
ケースかどうかを近似は変換や貯蔵中に発生した
検索や中。そして再び、ベース3は、同じくらいばかの金として有用である
ここでは、ベースが3遊びに来ていないためです。

あなたが使用するためのINTまたはDECIMAL、"近似とは異なり"が発生することができます
あなたは、FLOATので定義されている制約に適合しない値がある
この問題が発生方法をはるかに少ない制御され、それははるかに驚くべきものがある
ほとんどのユーザーに私は人の理由以外のFLOATを選んだ遭遇して
という事実は、その変換とストレージの性質を知っていた。あなたは知っていますか
どのように多くの人々私のような金銭的価値を格納するためFLOAT型を選択して見ている
価格、あるいは数量?そして、あなたはどのようにびっくりした彼らが見つけることが知っていますか
SQL Serverが28.0800000000002から28.08を変えて? SQL Serverの
彼らは渡されたデータを近似し、彼らが本当に気にしない方法
表面の下に起こった。



32)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
あなたはどのような表面の下に起こっているのを理解する好きではないのですか?
>
それは、必ず興味深い。しかし、私は基準の問題を持っていない
"おおよそのデータ型"それは説明するためのものだが、それを呼び出してデータをどのよう
潜在的に異なるが提供される方法から格納される
データベース。私は複数回、それは実際には関連このではない言ったように
ケースかどうかを近似は変換や貯蔵中に発生した
検索や中。そして再び、ベース3は、同じくらいばかの金として有用である
ここでは、ベースが3遊びに来ていないためです。
まあ、私はそれが役に立つことがタイプではない証明だと思う
それは正確な、すでにあるデータから、単に変換だ
10進形式。私は現実世界の有用性を主張したことはない。
引用:
あなたが使用するためのINTまたはDECIMAL、"近似とは異なり"が発生することができます
あなたは、FLOATので定義されている制約に適合しない値がある
この問題が発生方法をはるかに少ない制御され、それははるかに驚くべきものがある
ほとんどのユーザーに私は人の理由以外のFLOATを選んだ遭遇して
という事実は、その変換とストレージの性質を知っていた。あなたは知っていますか
どのように多くの人々私のような金銭的価値を格納するためFLOAT型を選択して見ている
価格、あるいは数量?そして、あなたはどのようにびっくりした彼らが見つけることが知っていますか
SQL Serverが28.0800000000002から28.08を変えて? SQL Serverの
彼らは渡されたデータを近似し、彼らが本当に気にしない方法
表面の下に起こった。
あなたはそれは難しいことは*変換かの説明になると思いますか*
どのデータではなく、という印象をFLOAT型が与え失う
本質的に不正確な?

私は、人々がFLOAT不適切使用すると、その彼らは疑いない
実際に可逆変換で驚いたが、私はどのように表示されない
正確に型を記述する任意の言って、より明確に
(正確に)それは情報を失う変換です。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合



33)

私は公平な考えを持って。そして、彼らは驚きを得る人々と同じだときに
バーベキューをガソリン(ガソリン注入後)炭の光。

それは最高の引数があるマックにについてユーザーに許可していないですだ
彼らは理解していないものです。


"アーロンバートランド[SQL ServerのMVP]"<ten.xoc @ dnartreb.noraawroteメッセージ
ニュース:%の23PueOBQNHHA.4888 @ TK2MSFTNGP02.phx.gbl ...

<snip>
引用:
という事実は、その変換とストレージの性質を知っていた。あなたは知っていますか
どのように多くの人々私のような金銭的価値を格納するためFLOAT型を選択して見ている
価格、あるいは数量?そして、あなたはどのようにびっくりした彼らは知っているか
SQL Serverが28.0800000000002から28.08を変えてか? SQL Serverの
</チョキ>



34)

あなたはそれは難しいことは*変換かの説明になると思いますか*
引用:
どのデータではなく、という印象をFLOAT型が与え失う
本質的に不正確な?
私はそれも難しいだろうとは思わないが、私はそれは無駄なことだと思う。として、私
前に、人々の、なぜそれが起こった気にしないで最もよると、彼らはただする
どのように修正を知っている。ときに、油が変更すると、あなたが知っているのですか得る
どのよう不純なお油がされ、どのようにこれはあなたのエンジンとガスの影響
燃費ダウンナノ詳細を見るには?またはですかは、単に新しいオイルをしたいですか?

私はこの2003年以降についての記事をやっていたし、私がした最初の人物だ
これまでもそれについてのぞき見を高めると聞きました。
http://classicasp.aspfaq.com/general...000000002.html

そして、私はまだそれがデータ型を近似呼び出すために有効であると主張
、変換は、データ型の一部としてこれまで私はとして率直に言ってから
心配。メーリングリストへ。





35)


"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200f61a5b67ae52c98d776 @ msnews.microsoft.cオム...
引用:
引用:
>ナンセンス。理由は、それは"それはに変換されるので、おおよそ"です
正確な数から>ベース- 2近似表現ができません。
>は、Base - 2で表される。他の種類の正確されて理由は、
>彼らは
>は、Base - 2には変換されません代わりに10進数を格納するパック
>フォーマット別のベースへの変換が行わする必要があるので。
>
番号はもともとで指定されたとしてそれは偉大なので、長いです
ベースは10 - あなたは、変換を必要としない。
>
私はおおよそ*変換*かどうかを区別する
*タイプ*は正確です。
そこでは全く変換があります。にするたびにフィードの情報
コンピュータと1つのことから変換されるこれらのデータ型として、それを保存する
内部表現への入力形式です。毎回。 CSのであること
男はそれを知っている必要があります:)ただ、たまたまは、NUMERIC(4、2)
タイプは、例えば、ある文字から1つの可逆変換です
文字列"28.08"内部表現[ベース- 16 [ここに示す:
"0x04020001F80A0000"。 REALとFLOATのある非可逆変換です
おおよそのベース- 2に文字列表現
"0x403C147AE147AE14"は、正確ではない数を"28.08"を表します。

"タイプ"と"変換"の間に、あなたを行うには区別するためとして、
具体的には"C"に変換を対象と#するときのような文を書く
これは?

フロートfは= 28.08;

技術的には、この文字列の変換は"28.08"に
内部のIEEE標準浮動小数点形式とその後の課題の
変数には、変換の結果は"f"。しかし、そこにあるので、
*常に*暗黙の型変換ほとんどの人が当然のようになります。それは可能性があります
良いトリビアの質問を作るのではなく、それは重要ではない指定することを超えて
この特定の暗黙の型変換するたびに変数を参照
代入。同じでは、SQLのために行く。

その障害が変換プロセスと完全にあると言うには
ストレージ、形式が責任をクマであること含意は、変換
プロセスは、この情報の損失が発生しないように修正できますか?私は傾向がある
その変換プロセスは、制限が必要とだと思うし
ストレージフォーマット自体ではなく、他の方法で回避。



36)

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
あなたはそれは難しいことは*変換かの説明になると思いますか*
どのデータではなく、という印象をFLOAT型が与え失う
本質的に不正確な?
>
私はそれも難しいだろうとは思わないが、私はそれは無駄なことだと思う。として、私
前に、人々の、なぜそれが起こった気にしないで最もよると、彼らはただする
どのように修正を知っている。ときに、油が変更すると、あなたが知っているのですか得る
どのよう不純なお油がされ、どのようにこれはあなたのエンジンとガスの影響
燃費ダウンナノ詳細を見るには?またはですかは、単に新しいオイルをしたいですか?
私はそれが人の種類あなたはどのように依存すると思います。私はその結果を取得する場合、私
期待しないで、私が取得したい良いものの*正確*説明
が起こって - 私は情報を失っているこの場合、インチという事実
それは非可逆私に重要となる、変換です。
引用:
私はこの2003年以降についての記事をやっていたし、私がした最初の人物だ
これまでもそれについてのぞき見を高めると聞きました。
http://classicasp.aspfaq.com/general...000000002.html
私は記事に問題がない。
引用:
そして、私はまだそれがデータ型を近似呼び出すために有効であると主張
、変換は、データ型の一部としてこれまで私はとして率直に言ってから
心配。メーリングリストへ。
10進数からの変換では、型と何ができるかの一部であり、
しかし、私は十分だタイプ自体、近似と判断するとは思わない。
基地に戻る3の場合に行っても、*があった場合*基本3から変換するには
いくつかの方法で10種類をおおよそのことだろう10に
それが今ではない方法?それはまだ表現できるようになる
同じデータができる、今日はどのようなことはあまり正確になっているか?

(いいえ、私はまだ、基本は3タイプがこれまで約くるとは言わないよ -
それは単に思考実験検討することがどのように合理的な"正確な"
対"近似"の区別はありません。)

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

37)

その障害が変換プロセスと完全にあると言うには
引用:
ストレージ、形式が責任をクマであること含意は、変換
プロセスは、この情報の損失が発生しないように修正できますか?私は傾向がある
その変換プロセスは、制限が必要とだと思うし
ストレージフォーマット自体ではなく、他の方法で回避。
はい、私は同意する!

次のトピックでは、ください...



38)

10進数からの変換では、型と何ができるかの一部であり、
引用:
しかし、私は十分だタイプ自体、近似と判断するとは思わない。
型の制限はどのように特定のデータ格納されて影響を与える場合には、
ある。私はここに(再び死んだ馬を破って維持するつもりはない、私
私はすでに死に馬にむちを打つていなければ基本3については、本当に気にしない
十分)。





39)

[VBのグループ]を削除

アーロンバートランド[SQL ServerのMVP] <のten.xoc @ dnartreb.noraawrote:
引用:
引用:
10進数からの変換では、型と何ができるかの一部であり、
しかし、私は十分だタイプ自体、近似と判断するとは思わない。
>
型の制限はどのように特定のデータ格納されて影響を与える場合には、
ある。私はここに(再び死んだ馬を破って維持するつもりはない、私
私はすでに死に馬にむちを打つていなければ基本3については、本当に気にしない
十分)。
私たちは妥協に向かってして動作できると思います。方法については、次の
文:

<proposal>
FLOATのは、いくつかの値に対して近似タイプです
正確に10進数で表現。これは、敬意をもって正確なタイプです
正確に2進で表現される値。

DECIMALは、いくつかの値に対して近似タイプです
正確にベース3で表現。これは、敬意をもって正確なタイプです
正確に10進で表現される値。
</提案>

そこに何かは、あなたが実際には(むしろ反対だか
だけを気にしない)より?

これらのステートメントと単純なステートメントとの違い
"というFLOATのおおよその場合、DECIMALは、正確な"は、上記のそれを作るです
完全に、それが唯一の基本が決定関わっている明確な
種類について"正確"ではなく、何か。

-
ジョンスキート - <skeet@pobox.com>
http://www.pobox.com/〜のスキートのブログ: http://www.msmvps.com/jon.skeet
グループに、私にメールしないでください返信すぎる場合

40)


"ジョンスキート[C#のMVP]"は<メッセージ内のskeet@pobox.comwrote~~V
ニュース:MPG.200f70eb886fedad98d780は@ msnews.microsoft.cオム...
引用:
あなたはそれは難しいことは*変換かの説明になると思いますか*
どのデータではなく、という印象をFLOAT型が与え失う
本質的に不正確な?
SQLは、抽象化のと同じですが、C#、C + +のは、VB、yaddaのyadda。その一部
抽象化は、離れて下腹部から人々を引くように設計さ
マシンと彼らには、特定の仕事を得るために使用できるツールを提供します。
それが役に立つのCSの観点からのIEEE浮動理解することが
ポイント標準、どのようにチップ設計や製造を実装FPUをの、
2進浮動小数点の違いは/バイナリコード10進数の/バイナリパック
10進数コード、アセンブリ言語の命令はボンネットの下に、起こって
など、それは*必要*は、この親密な知識をしなければならないするだけではない
何がほとんどのSQL開発者、DBAの、などかの99.9999999999999999%。ちょうど
それが必要な機械工学、土木で博士号取得者を持っていないみたいだね
工学、物理学、数学、電気工学を駆動する
車。それは素晴らしいすべての知識を持っているかもしれないが、それは実際にはない
必要はありません。
引用:
私は、人々がFLOAT不適切使用すると、その彼らは疑いない
実際に可逆変換で驚いたが、私はどのように表示されない
正確に型を記述する任意の言って、より明確に
(正確に)それは情報を失う変換です。
といえば"正確"とは、FLOATのタイプは"おおよそ"ではなく、
"不正確な"。私がFLOAT型"不正確な誰かから電話を見て"覚えていません
この記事まで。

として、それのように書いてある理由は"おおよそ"; SQLが抽象であるため、
とSQLで(これはオブジェクト指向ではない)あなたのような演算子をオーバーライドすることはできません
代入演算子です。演算子は密接にデータ型には、関連付けられている
ほぼすべてのユーザー(および開発者がそれに十分です大半)に
その場合は、FLOATの変数に値を割り当てる場合は、後でそれを取得するか、それ
あなたが割り当てたものと同じ値がされない場合があります。それは抽象化のレベルだ
SQLできた - それはいくつかの層だ抽象化よりもアセンブラ
言語、C + +、あるいはC#の。





41)

DECIMALは、いくつかの値に対して近似タイプです
引用:
正確にベース3で表現。これは、敬意をもって正確なタイプです
正確に10進で表現される値。
</提案>
>
そこに何かは、あなたが実際には(むしろ反対だか
だけを気にしない)より?
私はそこに何らかの理由で、基本を格納することはできません10進数を指摘することはないと思う
3正確には、これは完全にSQL Serverで無関係だからです。場合
これらの定義本当に好きし、標準化団体とそれらを提案する
マイクロソフト(connect.microsoft.com / sql)をする。私は非常に気がしない
それらを採用する。
引用:
これらのステートメントと単純なステートメントとの違い
"というFLOATのおおよその場合、DECIMALは、正確な"は、上記のそれを作るです
完全に、それが唯一の基本が決定関わっている明確な
種類について"正確"ではなく、何か。
関連性の低いこの議論の文脈、imhoのでは、あなたが変更することはできませんので、
任意のSQL Serverでの数値データ型のベース。