数据库中decimal

来源:互联网 发布:阿里云弹性web托管 ip 编辑:程序博客网 时间:2024/06/16 11:09

它们都是数值数据类型。可以规定其精度。

 

直接给个例子。

 

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