zoukankan      html  css  js  c++  java
  • 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, byteByte的区别

    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
    
    
  • 相关阅读:
    redis安装
    VMware安装Centos
    Nacos简单配置
    RAS非对称加密
    uLua Unity工作机制
    一个长期主义者的内与外
    MacOSX 运行Unity卡顿 [gethostname]
    着眼于长远,走的更稳
    物质趋于无穷, 人群趋于发散.符合熵增加的规律
    论PM与团队与敏捷开发
  • 原文地址:https://www.cnblogs.com/wangwanchao/p/5315849.html
Copyright © 2011-2022 走看看