日期:2014-05-16  浏览次数:20511 次

[转]数据库中decimal 及存储

直接给个例子。


decimal(5,2)

?? 其中 5 为最多可以存储的十进制位数为10位,是小数点前后的位数总和。


?? 2表示小数点后面的位数。


?? 例如100.20是合法的值,而1234.56,总数为6位,为非法的数据值。


?? 有人说那存12345应该可以吧。事实证明是不行的。因为其精度是2,所以12345会被当做12345.00来处理,还是?? 非法的数据。


?? 那么存储100.11111111111111呢?经测试,数据是可以存储的,但是会丢失精度(四舍五入 ),数据100.11会存储到数据库。


?? numeric和decimal同理。


sqlserver 中对应 java 数据类型:


integer、int  --->  int
tinyint、smallint  --->  short
bigint  --->  long
decimal、numeric  --->  java.math.BigDecimal
float  --->  float
double  --->  double
char、varchar  --->  String
boolean、bit  --->  boolean
date  --->  java.sql.Date
time  --->  java.sql.Time
timestamp  --->  java.sql.Timestamp
blob  --->  java.sql.Blob
clob  --->  java.sql.Clob
array  --->  java.sql.Array 


?