如何将小数位移到正确的两个位置,并且只保留一个小数点?
当前数据:
4 Year Grad Rate
0.799204771371769
我需要在列中存储以下内容:
4 Year Grad Rate
79.9
我想我可以使用CAST让它以我想要的方式显示,但我想改变数据在列中的存储方式,只有2位数,小数点,然后是一位数。
感谢您的帮助!
答案 0 :(得分:1)
乘以100移动小数位,然后施放以减少不必要的休息
select cast(0.799204771371769 * 100 as decimal(10,1))
要更新您的数据,您可以
update your_table
set your_column = cast(your_column * 100 as decimal(10,1))
答案 1 :(得分:1)
非常确定您可以将列更改为Decimal(9,1)
安全投注是创建新列Decimal(9,1)
我认为你可以set newCol = oldCol * 100.0;
或
newCol = oldCol * 100D;
答案 2 :(得分:0)
您可以在SQL SERVER中使用数字数据类型
Numeric(p,s)
p =将存储的最大小数位数, 小数点的左侧和右侧。
s =将存储在右侧的小数位数 小数点。
declare @val NUMERIC(18,2)=0.799204771371769
select @val
编辑:
declare @val NUMERIC(18,1)=0.799204771371769*100
select @val
答案 3 :(得分:-1)
试试这个:
SELECT ROUND(0.799204771371769 * 100, 1)