请教为何这样的表达式结果始终为0 SELECT cast((1/3)as float)as sdcSELECT convert(float,(1/3))as sdcSELECT (1/3) as sdc我就是想不通为何这样的表达式结果始终为0 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT cast((1/3)as float)as sdc先进性整数除法1/3=0,再castSELECT convert(float,(1/3))as sdc一样SELECT (1/3) as sdc一样应该SELECT cast((1.0/3)as float)as sdcSELECT convert(float,(1.0/3))as sdcSELECT (1.0/3) as sdc 或者SELECT cast(1 as float)/3 as sdcSELECT convert(float,1)/3))as sdc 原因是sql server的除法是默认其结果的精度为被除数的精度。楼主的例子中被除数均为1,其精度为整数,所以结果都为0。 1/3是用整型进行运算的,结果为0要在运算之前对1或者3中的一个进行强制类型转化成FLOAT的就有正确的结果了 MFC很好找 存储过程中创建视图的问题!! 关于ASP分批读入SQL的问题,请教专家!!~~~ 请帮忙修改这个的存储过程,计算结果不对 在线等,急,,,, 存储过程里得LIKE的语法是怎么写的? SQL2005的特殊问题 update语句 大力,进来领分!昨天解决的问题又出现新问题了,why? 在一个自定义函数里调用sp_executesql 出错,高手帮忙看一下 请问ms sql如何实现异地备份? 高手帮忙解决EXCEL导入SQL错误
先进性整数除法1/3=0,再castSELECT convert(float,(1/3))as sdc
一样
SELECT (1/3) as sdc
一样应该SELECT cast((1.0/3)as float)as sdcSELECT convert(float,(1.0/3))as sdcSELECT (1.0/3) as sdc
SELECT cast(1 as float)/3 as sdc
SELECT convert(float,1)/3))as sdc
要在运算之前对1或者3中的一个进行强制类型转化成FLOAT的就有正确的结果了