java学习第四天(输入输出)

java学习第四天(输入输出),第1张

1:输入 基本 *** 作

导入包:import java.util.*;
构造Scanner对象:Scanner in=new Scanner(System.in);//in可更改
常用数据类型的输入:(1):int num=in.nextInt();
(2):short num=in.nextShort();
(3):byte num=in.nextByte();
(4):long num=in.nextLong();
(5):double num=in.nextDouble();
(6):float num=in.nextFloat();
(7):String str=in.nextLine();
(8):boolean bool=on.nextBoolean()

2:输出 三种输出 三个输出函数:
		  (1):System.out.println();//打印结束后换行
          (2):System.out.print();//打印结束不换行
          (3):System.out.printf();//格式化输出

println()和print()没什么好说的,这里主要介绍printf()

格式化说明符

首先认识一下格式说明符:
%d 十进制整数
%x 十六进制整数
%o 八进制整数
%f 定点浮点数
%e 指数浮点数
%g 通用浮点数
%a 十六进制浮点数
%s 字符串
%c 字符
%b 布尔值
%h 散列码
%tc 日期时间
%% 百分号
%n 与平台有关的行分隔符

我们可能对%d %c %s 很熟悉,%o %b %% 也可以理解,可是什么叫定点浮点数呢,接下来看一看定点数和浮点数的概念
定点数:定点小数是计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数
浮点数:浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。
我认为可以简单地理解为,定点数是精确具有确定值的数,而浮点数是不确定的数,你不知道计算机中到底是什么值,比如两个double数相减4.0-3.11,计算机中计算存储的结果可能就不是0.89,而是其他值。
而定点浮点数我认为就是固定截取几位作为值,代码示例如下

public class Demo9 {
    public static void main(String[] args) {
        double x=4.0;
        double y=2.11;
        System.out.println(x-y);
        System.out.printf("%f",x-y);//定点浮点数
        System.out.printf("%g",x-y);//通用浮点数
    }
    //运行结果
    //1.8900000000000001
    //1.890000
    //1.89000
}

可以看到,定点浮点数截取小数点后六位,通用浮点数截取小数点后五位

指数浮点数呢,当然是用指数形式,或者准确点数,用科学计数法表示浮点数

public class Demo10 {
    public static void main(String[] args) {
        System.out.printf("%e\n",22222.3);
        System.out.printf("%e",0.023);
    }
    //运行结果
    //2.222230e+04
    //2.300000e-02
}

十六进制浮点数呢,先以代码为例

public class Demo11 {
    public static void main(String[] args) {
        System.out.printf("%a\n",16.16);
        System.out.printf("%f",0x1.028f5c28f5c29p4);
    }
    //运行结果
    //0x1.028f5c28f5c29p4
    //16.160000
}

相信读者看到结果一定很蒙,我也很蒙
首先我们要知道十进制的16.16的十六进制表示是多少,经计算是10.28F5C("28F5C"循环)近似为10.28F5C28F5C29,p4什么意思呢,2的4次方的16,1.028f5c28f5c29(16进制)乘16 (十进制)的结果就是10.28F5C("28F5C"循环)

%n就是格式化输出中的换行,适用于不同平台

%tc 可以用于输出当前时间,代码格式如下

import java.util.*;//不要忘了导入包
public class demo1 {
    public static void main(String[] args) {
        System.out.printf("%tc",new Date());
    }
    //运行结果
    //周五 5月 06 18:27:35 CST 2022
}

还剩下最后一个散列码 %h,好吧,这个我查了资料,两个字,不会,太难,起码现在没有事无巨细了解的必要。这里就不介绍了,毕竟我也不会,哈哈。
当然,printf()不止有这些,还有一些额外的格式控制以及时间和日期转换符,下面以代码示例一些常用的

public class Demo3 {
    public static void main(String[] args) {
        int num1=5;
        int num2=-5;
        //打印数字符号
        System.out.printf("%+d %+d\n",num1,num2);
        //设置域宽
        System.out.printf("%5d\n",num1);
        //左对齐
        System.out.printf("%-5d%-5d\n",num1,num2);
        //添加分组分隔符
        System.out.printf("%,d",1111111111);
    }
    //运行结果
    //+5 -5
    //    5
    //5    -5
    //1,111,111,111
}

本次输入输出就了解到这里,如有错误,望指正

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存