展開全部
SQLServer中的數值型別分為兩種:
①精確的數值型別,具體的資料型別有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,這些資料型別能夠精確的表明某以數值;
②近似的數值型別,具體就是float和real。浮點資料為近似值。
因此,並非資料類型範圍內的所有值都能精確的表示。
精確數值的資料型別轉換:
1
2
3
declare @i int
set @i=123456789
print "test:"+convert(varchar(20),@i)
輸出結果:test:123456789
近似數值的資料型別轉換:
declare @i float
輸出結果:test:1.23457e+008
輸出的結果是使用科學計數法來表示。
幫助文件中說到float 或 real 轉換為字元資料時的 style 值:
0(預設值)最大為 6 位數。根據需要使用科學記數法。
1 始終為 8 位值。始終使用科學記數法。
2 始終為 16 位值。始終使用科學記數法。
我們的值是123456789,超過了6位數。所以不管是0還是1,2結果都會使用科學計數法來表示。那麼要怎麼樣才能將我們的資料不轉換成科學計數法而輸出呢?比較簡單的辦法就是將近似資料轉換為精確資料,然後再將精確資料轉換成字串。
同樣以上面的例子為例, 進行兩次資料型別的轉換如下:
print "test:"+convert(varchar(20),convert(int,@i))
輸出:test:123456789
如果是有小數,那麼我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。比如要輸出4位小數,那麼轉換程式碼是:
set @i=123456789.12
print "test:"+convert(varchar(20),convert(decimal(18,4),@i))
輸出:test:123456789.1200
展開全部
SQLServer中的數值型別分為兩種:
①精確的數值型別,具體的資料型別有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,這些資料型別能夠精確的表明某以數值;
②近似的數值型別,具體就是float和real。浮點資料為近似值。
因此,並非資料類型範圍內的所有值都能精確的表示。
精確數值的資料型別轉換:
1
2
3
declare @i int
set @i=123456789
print "test:"+convert(varchar(20),@i)
輸出結果:test:123456789
近似數值的資料型別轉換:
1
2
3
declare @i float
set @i=123456789
print "test:"+convert(varchar(20),@i)
輸出結果:test:1.23457e+008
輸出的結果是使用科學計數法來表示。
幫助文件中說到float 或 real 轉換為字元資料時的 style 值:
0(預設值)最大為 6 位數。根據需要使用科學記數法。
1 始終為 8 位值。始終使用科學記數法。
2 始終為 16 位值。始終使用科學記數法。
我們的值是123456789,超過了6位數。所以不管是0還是1,2結果都會使用科學計數法來表示。那麼要怎麼樣才能將我們的資料不轉換成科學計數法而輸出呢?比較簡單的辦法就是將近似資料轉換為精確資料,然後再將精確資料轉換成字串。
同樣以上面的例子為例, 進行兩次資料型別的轉換如下:
1
2
3
declare @i float
set @i=123456789
print "test:"+convert(varchar(20),convert(int,@i))
輸出:test:123456789
如果是有小數,那麼我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。比如要輸出4位小數,那麼轉換程式碼是:
1
2
3
declare @i float
set @i=123456789.12
print "test:"+convert(varchar(20),convert(decimal(18,4),@i))
輸出:test:123456789.1200