java 四大类八种数据类型

第一类:逻辑型boolean
1.boolean类型只存在true(真),false(假)两种形式
列:boolean a=true; boolean b=false;
第二类:文本型char
字符常量通常用单引号括起来(可以是中文)java采用unicode编码,每个字符占两个字节,
列:char a='a';char b='你';
第三类:整数型(byte、short、int、long)
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short: 16 位,很少用 从-32768到32767
int:32 位、最常用,-2^31-1~2^31 (21 亿) 从-2147483648,到2147483647共10位
long:64 位、次常用  从-9223372036854775808到9223372036854775807共19位
第四类:浮点型(float、double)
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾
注意:在数学中0到1有无数个浮点数;而计算机是离散的,所以表示的时候有误差,
计算机用精度(小数点后几位来表示正确),比较浮点数时a==0.1是不合适的,
应该a-0.1==0;如果a是0.1,则即使有误差 a-0.1==0因为a和0.1都被表示为一个有误差的计算机二进制
[1]类型转换

1)自动转换:byte-->short-->int-->long-->float-->double

注意:小可转大,大转小会失去精度

2)String转换成int或者double
    int/Integer num = Integer.parseInt(String str);

    double/Double num = Double.parseDouble(String str);

[2]如何将整数 int 转换成字串 String
    int a=9;
1) String s = String.valueOf(a);
  这个方法是静态的,直接通过String调用,可以说是完美,只是平时不习惯这样写而已,
  这样的实现避免了前面两个的不足和缺点。首先来看看他内部的实现机制:
    public static String valueOf(Object obj){
        return (obj==null) ? "null" : obj.toString()
    };
 在内部就是做了为空的判断的,所以就不会报出空指针异常。  
 从上面的源码可以很清晰的看出null值不用担心的理由。但是,这也恰恰给了我们隐患。
 我们应当注意到,当object为null 时,String.valueOf(object)的值是字符串”null”,
 而不是null!!!在使用过程中切记要注意。
2) String s = a.toString();
   在这种使用方法中,因为java.lang.Object类里已有public方法.toString(),
   所以对任何严格意义上的java对象都可以调用此方法。但在使用时要注意,
   必须保证object不是null值,否则将抛出NullPointerException异常。采用这种方法时,
   通常派生类会覆盖Object里的toString()方法。
[3]double类型数据做加和操作时会丢失精度问题处理  
      /加法运算/
     public static double add(double m1, double m2) {
         BigDecimal p1 = new BigDecimal(Double.toString(m1));
         BigDecimal p2 = new BigDecimal(Double.toString(m2));
         return p1.add(p2).doubleValue();
     }
     /减法运算/
     public static double sub(double m1, double m2) {
         BigDecimal p1 = new BigDecimal(Double.toString(m1));
         BigDecimal p2 = new BigDecimal(Double.toString(m2));
         return p1.subtract(p2).doubleValue();
     }
     /乘法运算/
     public static double mul(double m1, double m2) {
         BigDecimal p1 = new BigDecimal(Double.toString(m1));
         BigDecimal p2 = new BigDecimal(Double.toString(m2));
         return p1.multiply(p2).doubleValue();
     }
[4]保留小数点后两位方法
方法-:
DecimalFormat    df   = new DecimalFormat("######0.00");   
double d1 = 3.23456  
df.format(d1);
#.00 表示两位小数 #.0000四位小数 以此类推...
方法二:
double d = 3.1415926;
String result = String.format("%.2f",d);
%s  字符串类型
%c 字符类型
%b 布尔类型
%d 整数类型(十进制)
%x 整数类型(十六进制)
%o 整数类型(八进制)
%f 浮点类型
%a 十六进制浮点类型
%e 指数类型
%g 通用浮点类型(f和e类型中较短的)
%h 散列码  
%% 百分比类型
%n 换行符
%tx 日期与时间类型(x代表不同的日期与时间转换符
%.2f %. 表示 小数点前任意位数   
2 表示两位小数 格式后的结果为f 表示浮点型
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值