Java笔记整理 —— 整型与浮点型细节

本文详细介绍了Java中基本数据类型的范围和可移植性,强调了整型和浮点型常量的声明规则。针对浮点运算,讨论了浮点型默认类型、表示形式以及相除陷阱,提醒在比较浮点数时应注意精度问题。通过实例展示了如何正确进行浮点数比较。
摘要由CSDN通过智能技术生成

整形细节

     1.Java各基本数据类型有固定的范围和字段长度,不受具体OS(操作系统)的影响,以保证Java程序的可移植性。

     2.Java的整型常量默认为int型声明long型常量须在后面加上'l'或者'L'

int a = 100L;//这样的声明是错误的
long b = 100L;//这样的声明是正确的

     3.Java程序中变量声明为int型,除非不足以表示大数,才使用long。

     4. bit:计算机中的最小存储单位。  byte:计算机中基本存储单元。  1byte = 8 bit

举例:byte n1 = 3 和 short n2 = 3 的存储方式

       byte占据一个字节,数值为3,内容为 00000011 。short占据两个字节,数值为3,内容为 00000000 00000011

浮点细节

     1.Java的浮点型常量默认为double型,声明float型常量,需要在后面加上'f'或'F'。

float a = 1.1;//错误
float b = 1.1F;//正确
double c = 1.1;//正确
double d = 1.1F;//正确,d仍然是double类型
double e = 3d;//正确,后面加d就代表double类型

     2.浮点型常量有两种表示形式——1.十进制:5.12    512.0f    .512(如果是0.···,那么0可以省略,.512就表示0.512)   需要注意的是,必须有小数点,即使是整数也要加上 '.0'          2.科学计数法表示:5.12e2(即5.12*10^2)   5.12E-2(即5.12*10^(-2))  

     3.正常情况都使用double类型,因为比float类型更准确。

     4.相除陷阱——double类型进行相除的时候,是以精度的方式返回这个值。

double num1 = 8.1/3;
System.out.print(num1);

   因此,我们对两个数之间的比较,其中有运算结果是小数时要小心,不能用 '==' 来判断是否相等,而是以两个数差值的绝对值,在某个精度范围内判断

public static void main(String[] args){
		double num1 = 2.7;
        double num2 = 8.1/3;
        if(num1 == num2){//这样的判断方法是错误的
            System.out.print("两者相等");
        }else{
            System.out.print("两者不相等");
        }
	}

public static void main(String[] args){
		double num1 = 2.7;
        double num2 = 8.1/3;
        if(Math.abs(num1 - num2) < 0.00001){//在这里设置精度,使用取绝对值方法
            System.out.print("符合规定精度,两者相等");
        }
        else{
            System.out.print("不符合规定精度,两者不相等");
        }
	}

 当然,如果是查询得到或者是直接赋值的小数,可以直接进行比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值