Java 和Oracle的数据类型
Posted 不痴不立
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 和Oracle的数据类型相关的知识,希望对你有一定的参考价值。
一、BigDecimal
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。
如果为零或正数,则标度是小数点后的位数。
如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。
setScale(int n, roundingMode)方法
直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_DOWN)
进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_UP)
四舍五入,2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)
四舍五入,2.35变成2.3,如果是5则向下舍setScaler(1,BigDecimal.ROUND_HALF_DOWN)
浮点数没有办法是用二进制进行精确表示
CPU表示浮点数由两个部分组成:指数和尾数,这样的表示方法一般都会失去一定的精确度,有些浮点数运算也会产生一定的误差
java的float只能用来进行科学计算或工程计算,如果需要精确计算,非要用String来够造BigDecimal不可
在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算
1 BigDecimal b1 = new BigDecimal(Double.toString(0.48)); 2 BigDecimal b2 = BigDecimal.valueOf(0.48);
二、char, byte和Byte的区别
char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 ); 大小范围 是0--65535; 可以表示一个整数,不能表示负数
char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符
byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127
1、char可以表中文字符,byte不可以
1 char e1 = ‘中‘, e2 = ‘国‘; 2 byte f = (byte) ‘中‘; // 必须强制转换否则报错 3 System.out.println(e1); 4 System.out.println(e2); 5 System.out.println(f); // 输出45?
2、char、byte、int对于英文字符,可以相互转化
1 byte g = ‘b‘; // b对应ASCII是98 2 char h = (char) g; 3 char i = 85; // U对应ASCII是85 4 int j = ‘h‘; // h对应ASCII是104 5 System.out.println(g); //98 6 System.out.println(h); //b 7 System.out.println(i); //U 8 System.out.println(j); //104
以上是关于Java 和Oracle的数据类型的主要内容,如果未能解决你的问题,请参考以下文章
将excel中数据用JAVA代码导入到oracle中,遇到日期类型应该怎么处理!?
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段