我知道float 和 real 是:
用于浮点数值数据的近似数数据类型。浮点数据是近似的;因此,并非数据类型范围内的所有值都可以准确表示。
但是,在以下示例中:
Q1:为什么'float( 24 )' (ie; 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) |