MilgGtery 发表于 2019-2-1 15:39:30

Java入门基础:5条命名规范和8种数据类型归纳 (下)

 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) {

  return p1.subtract(p2).doubleValue();

  /乘法运算/

  public static double mul(double m1, double 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 表示浮点型
页: [1]
查看完整版本: Java入门基础:5条命名规范和8种数据类型归纳 (下)