float
列に格納されている値1555.4899999999998
の既定の精度(53)です。私が単純なselect
を実行すると、SSMSはすべての使用可能な精度で出力するのではなく出力を丸めます。実際に保存された値と一致するように、印刷された値がfloat
のリテラルとして機能しないため、最近私のためにいくつかの不具合が発生しました。例えばSQL Server Management Studioでの浮動小数点型の完全精度出力
(これらの数値の両方がデフォルトfloat
の正確な表現を持っていることに注意)、
declare @f1 float
declare @f2 float
set @f1 = 1555.49
set @f2 = 1555.4899999999998
select @f1, @f2
select STR(@f1,30,15), STR(@f2,30,15)
出力:
:クエリアナライザ、その第一select
出力の
1555.49 1555.49
1555.490000000000000 1555.489999999999800
1555.49 1555.4899999999998
これは私がしたい動作ですManagement Studioから取得します。 SSMSの結果表示が丸められないようにする方法はありますか?
データベーススキーマは私の制御の外にあるREPLACE残念ながら。私は100%フロートはこのアプリケーションのための悪い選択ですが、それが正しいタイプであれば、私はまだManagement Studioでより正確な表現が期待できます。 – Simon