私はフロートとリアルが:であることを理解しています:
浮動小数点数値データで使用するための近似値データ型。浮動小数点データは概算です。したがって、データ型の範囲内のすべての値を正確に表すことができるわけではありません。
ただし、次の例では:
Q1:「float(24)」(つまり、real)が「float(53)」よりも小数点以下の桁数が多いのに精度が低いのはなぜですか?
Q2: @ sを丸めずにそのまま数値フィールドに格納するにはどうすればよいですか?
declare @s varchar(50) = '34.770438199999944'
select convert(float(24), @s) real_, convert(float(53), @s) float_
結果(括弧は差分をより明確にするためのものです)
| real_ | float_ |
------------------------------------
| 34.77043(9147949) | 34.77043(82) |