现在有一个数据类型为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 ))