資料型態 - Decimal

資料型態 - Decimal

前陣子需求單位開了一張單過來,說是要求把數字欄位開到最大能儲存的範圍。
一開始只是想說:「那就把資料庫的可儲存範圍設到最大好了。」

欄位型態是decimal,採用的資料庫是ms sql server,最大有效位數共38位。
所以,我就把欄位直接調成decimal(38, 2)。結果後來才發現沒這麼簡單XD

C#也有decimal型態,不過卻和資料庫的範圍差距不一樣,另外還有javascript
的問題。

所以整理了一下

 

ms sql         - 10^38 +1 through 10^38 - 1
c#               ±1.0 × 10^28 to ±7.9 × 10^28
javascript    integer to 15 digits

 

簡單來說,如果要以能輸入的長度來限制,ms sql大概是38位,c#是27-28位,
而javascript是15位。

 

考量到要乘以匯率(*100)的問題,所以必需要再減二位。

最後的定案是輸入長度限制是13位。

 

相關連結:

The Complete Javascript Number Reference