android float类型保留两位小数_数据类型

数据类型

一、 数据类型分类

a)基本数据类型
    八大基本数据类型
b)引用数据类型
    数组,字符串,对象...

二、基本数据类型

数值型
    整数型
        byte类型
        short类型
        int类型
        long类型
    浮点型
        float类型
        double类型
字符型
    char类型
布尔型
    boolean类型

三、整数型

byte类型,1个字节,-128到127,-2^7到2^7-1 short类型,2个字节,-32768到32767,-2^15到2^15-1 int类型,4个字节,大概在正负21亿之间,-2^31到2^31-1 long类型,8个字节,非常大,-2^63到2^63-1 注意事项: 1)根据你需要存储的数据范围,来合理的选择使用数据类型。 避免存储的数据超出数据类型的表数范围。 例如:byte num = 128; 避免使用的数据类型不合适浪费内存空间。 补充:现实开发中,一般只使用int和long即可. 2)整数型固定值常量的默认类型是int类型。
3)在整数型固定值常量末尾添加“L”或“l”,那么该常量就变为了long类型常量了 建议:建议使用“L”,不建议使用“l” 4)关于整数型固定值常量还有哪些呢??? a)十进制固定值常量,例如:1, 2, 3, ... b)八进制固定值常量,例如:017, 011, ... c)十六进制固定值常量,例如:0x1A, ...

四、浮点型

float类型,4个字节,能精确到小数点后7位,单精度类型。 double类型,8个字节,精确度是float类型的两倍,双精度类型。 注意事项:
1)现实开发中,我们使用double类型较多。 2)固定值小数常量的默认数据类型为double类型。 3)在小数固定值常量默认添加“F”或“f”,那么该常量就变为了float类型的常量了 4)因为小数的存储方式不一样,那么最好不要对小数最非常精确的比较 5)小数的固定值常量有哪些??? 十进制小数常量,例如:12.34, 3.14, ... 使用科学计算法表示小数常量,例如:3.1E5, 3.1E-3 3.14E2,等效于:314.0,也就是小数点往右移动两位 3.14E-2,等效于:0.0314,也就是小数点往左移动两位

五、布尔型

常量值:true,false true: 代表真或条件成立 false: 代表假或条件不成立 布尔类型的使用场合: 常用于条件判断,例如:条件成立该做什么事,条件不成立又该做什么事。

六、字符型

char类型占用2个字节 常量:使用单引号包裹的一个字符,我们称之为字符常量。 字符串,String类型(后续会深入学习) 常量:使用双引号包裹的内容(可以是任意多个字符组成),我们称之为字符串常量。
字符串和别的数据类型做+运算,其实做的是拼接运算。 String str = "hello world" + 30; System.out.println(str); // 输出:"hello world30" 字符是如何存储在内存中的??? Unicode编码,占2个字节,可允许有65536个字符,一个中文字符在内存中占用2个字节。

4981c01985b1f64a6da83d8bd6f0f6d3.png

七、数据类型转换

  • 为什么需要数据类型转换??? 因为java是强类型语言,所以要求执行“赋值运算”和“算数运算”的时候,参与运算的数据类型必须保持一致。
  • 基本数据类型转换的方式有哪些??? a)隐式类型转换,无需程序员手动处理 b)强制类型转换,需要程序员手动处理
  • 那么基本数据类型可以相互转换??? 除了boolean类型之外,其余的数据类型在内存中存储的都是数值。 所以,除了boolean类型之外,其余的数据类型都可以相互转换。

八、隐式类型转换

原则:从低字节高字节转换(提升)。 byte --> short --> int --> long --> float --> double char --> int
赋值运算:从低字节向高字节转换(提升)。 特例:把int类型常量赋值给byte、short和char类型的变量时, 属于自动类型转换的特例,只需不超出其表数范围即可。 条件: - int类型常量 - 不超出其表数范围

常见面试题: 1、byte b1 = 11; byte b2 = 12;byte sum = b1 + b2; 错误 原因:两个byte类型运算之后的结果为int类型 和int num1 = 100; int num2 = 300; int sum = num1 + num2; 如何确定以上代码是对的??? a)检查语法是否正确,编译 b)检查逻辑是否正确,解释执行,运行时

2、请问说出100000L100000100000 正确 和100000100000100000 // 错误

3、int num1 = 90000; int num2 = 90000; int total = num1 * num2; 请问total的结果是多少? - 不知道,因为81亿已经超出了int类型的表数范围,返回的结果是一个无意义的数

九、强制类型转换

  • 什么时候需要强制类型转换??? 自动类型转换无法实现的时候,那么我们就使用强制类型转换。
  • 强制类型转换的语法 语法:目标数据类型 变量名|常量名 = (目标数据类型)变量|常量;
  • 强制类型转换的注意点 1)强制类型转换之后的数据的数据类型保持不变。 int num1 = 10; byte num2 = (byte)num1; // 此处强转之后num1依旧为int类型 2)如何把一个小数转换为整数???
    int num2 = (int)123.45; 3)使用强制类型转换的时候需要慎重!!!可能会丢失精度。
    int num1 = 128; byte num2 = (byte)num1; // 输出:-128
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值