当前位置: 代码迷 >> Sql Server >> bigint数据类型转成浮点型,该如何解决
  详细解决方案

bigint数据类型转成浮点型,该如何解决

热度:58   发布时间:2016-04-24 09:07:29.0
bigint数据类型转成浮点型
现在有一个数据类型为bigint的数,但是现在想用bigint转成浮点型并
发现写成下面那个样子数据很大时会错误,有没有更好的办法呢
 

select convert(varchar(20),convert( decimal(20,2) , convert(float(10),2305847407260205056)/100.00 ))

------解决思路----------------------
SQL 版本是多少呢?
2005下 

select convert(varchar(50),convert( decimal(38,2) , convert(float(10),2305847407260205056222222)/100.00 ))

把VARCHAR 和 DECIMAL 改大一点 不会出错
------解决思路----------------------
bigint 是:
 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807),一共19位。所以转成numeric时候,整数部分位数加起来大于或等于19就没问题。比如可以转成numeric(19,0),或者numeric(21,2)。但numeric(20,2)是不行的,因为整数部分只有18位。

 
------解决思路----------------------
decimal(20,2) 这个你还是用 varchar(21)吧
万一20位数字的有小数点的就把你爆了
------解决思路----------------------
楼主真是惜字如金啊,就不能宽容几个字节么,如何?
select convert(varchar(38),convert( decimal(38,2) , 2305847407260205056/100.00 ))
  相关解决方案