为啥sqlsever2000的float 10/100 的结果不是0.1呢? 刚才无意发现select convert(float,10)/convert(float,100)的结果居然是0.10000000000000001为什么后面会多出那么一小点东西?求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 float用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值;并非数据类型范围内的所有数据都能精确地表示。 2005的结果:select convert(float,10),convert(float,100),convert(float,10)/convert(float,100) ---------------------- ---------------------- ----------------------10 100 0.1(1 row(s) affected) float本来就是近似存储,求比例一般不用显示转换 select 10*1.0/100select round(10*1.0/100,2) select convert(numeric(10,2),10)/convert(numeric(10,2),100)select convert(real,10)/convert(real,100)------------------------- .1000000000000(1 row(s) affected) ------------------------ 0.1(1 row(s) affected) float 是近似值,如果要定義浮點型,還是用numeric吧 求助:以动态sql语句 求一SQL语句 这样的行转列应该怎么实现 我要将表a中的a1字段的类型改为varchar(1000),用SQL语句怎么写 SQL中,对字符型数据使用MAX,MIN等函数会出错吗? SqlServer登录的问题 希望大家帮助(同一个表中两个字段判断问题) 请问在那里能下载免费的电子图书 谁有OLEDB中文教程? 一个简单触发器的问题:请你指教 求解,能不能将查询结果拆分 将 varchar 值 'null' 转换为数据类型为 int 的列时发生语法错误
select convert(float,10),convert(float,100),convert(float,10)/convert(float,100)
---------------------- ---------------------- ----------------------
10 100 0.1(1 row(s) affected)
select round(10*1.0/100,2)
.1000000000000(1 row(s) affected)
------------------------
0.1(1 row(s) affected)