遇到double数⽬过⼤,转String变成科学计数法
问题:
java中,当double数⽬过⼤,转出String时,变成了科学记数法的表⽰。
总结:
1.项⽬的存储⽤的是mysql,mysql的类型和java类型之间存在映射关系,以前关注不多。现在总结⼀下:
类型名称显⽰长度数据库类型JAVA类型JDBC类型索引(int)描述VARCHAR L+N VARCHAR java.lang.String12
CHAR N CHAR java.lang.String1
BLOB L+N BLOB java.lang.byte[]-4
TEXT65535VARCHAR java.lang.String-1
INTEGER4INTEGER UNSIGNED java.lang.Long4
TINYINT3TINYINT UNSIGNED java.lang.Integer-6
SMALLINT5SMALLINT UNSIGNED java.lang.Integer5
MEDIUMINT8MEDIUMINT UNSIGNED java.lang.Integer4
BIT1BIT java.lang.Boolean-7
BIGINT20BIGINT UNSIGNED java.math.BigInteger-5
FLOAT4+8FLOAT java.lang.Float7
DOUBLE22DOUBLE java.lang.Double8
DECIMAL11DECIMAL java.math.BigDecimal3
BOOLEAN1同TINYINT
ID11PK (INTEGER UNSIGNED)java.lang.Long4
DATE10DATE java.sql.Date91
bigdecimal转换为integerTIME8TIME java.sql.Time92
DATETIME19DATETIME java.sql.Timestamp93
TIMESTAMP19TIMESTAMP java.sql.Timestamp93
91
YEAR4YEAR java.sql.Date
2. 对于bolb,⼀般⽤于对图⽚的数据库存储,原理是把图⽚打成⼆进制,然后进⾏的⼀种存储⽅式,在java中对应byte[]数组。
3. 对于boolen类型,在mysql数据库中,个⼈认为⽤int类型代替较好,对bit操作不是很⽅便,尤其是在具有web页⾯开发的项⽬中,表⽰0/1,对应java类型的Integer较好。
4. 这次遇到的问题,我⽤的解决⽅案就是mysql端⽤decimal来存储,然后java端⽤BigDecimal来接收,
涉及了Decimal的⼀些⽤法:
decimal转int
BigDecimal a=new BigDecimal(12.88);
int b=a.intValue();
int 转decimal
BigDecimal bigDecimal = new BigDecimal(int val);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论