使用Decimal型別格式化資料

2021-05-31 21:59:04 字數 997 閱讀 9156

1、int  或 float 型別轉為decimal型別的時候注意decimal的長度,

將int型轉為decimal型

declare @a  int 

set @a = 100

select convert(decimal(4,2), @a)

輸出:10.00;

如果將100賦值給變數@a

declare @a  int 

set @a = 100

select convert(decimal(4,2), @a)

執行後會報錯:

訊息 8115,級別 16,狀態 8,第 4 行

將 int 轉換為資料型別 numeric 時出現算術溢位錯誤。

因為decimal(4,2)只有兩個整數字,而100是3位整數,因此會產生溢位。

結論: 將值賦給decima(m, n)l型別是,值的整數部分的位數不能大於定義的decimal(m, n)的整數字m-n;

declare @b float 

set @b = 10.1

select convert(decimal(4, 2), @b)

輸出: 10.10

declare @b float 

set @b = 10.001

select convert(decimal(4, 2), @b)

輸出: 10.00

declare @b float 

set @b = 10.007

select convert(decimal(4, 2), @b)

輸出: 10.01

結論:將值賦給decima(m, n)l型別是,值的小數部分的位數只會保留n位,且按n+1位四捨五入

格式化輸出LONGLONG型別

typedef int64 longlong 所以要想輸出就要看 int64使用什麼格式符了。通過查msdn中,發現是 i64。在格式化輸出則還需要結合乙個d,即 i64d。對於無符號的ulonglong,則是 i64u。例子 longlong nlarge 9999999888 wprintf l...

格式化輸出LONGLONG型別

typedef int64 longlong 所以要想輸出就要看 int64使用什麼格式符了。通過查msdn中,發現是 i64。在格式化輸出則還需要結合乙個d,即 i64d。對於無符號的ulonglong,則是 i64u。例子 longlong nlarge 9999999888 wprintf l...

格式化,強調 數值格式化

聚合函式返回的的數值型別的值有個特點就是沒有被格式化。通過前面的帶 sum 聚合函式的示例,我們可以看到這一點 注意合計值 命令,或者在物件檢視器中選中 displayformat 屬性。在上節的示例中,格式化操作是針對一物件或物件內的表示式,在物件內僅有乙個表示式時它還能正常工作,不過當物件內不有...