本文记录了个人java与c易混淆的一些东西。
switch 支持的数据类型
C:
short int long char (unsigned,signed)
1 | switch(expression) |
expression结果必须是整型值(包括char),case标签必须是整数类型(包括char)的常量或整形常量表达式,不能用变量来用做case的标签。
java:
byte short int char 枚举 String
其中String(jdk1.7)以后才支持
expression本质上是支持*int*类型, byte short char 都默认转换成int,String根据哈希值,归跟到底还是int型。
expression与case是String或者不是String要一致。
数据类型的精确性
C语言的数据类型比较
1 | printf("%f",0.01 + 0.09); |
输出结果为:0.100000
Java的基本数据类型不是很精确:
1 | System.out.println(0.01 + 0.09); |
输出结果为:0.09999999999999999
要想在java中也使用精确的数据,可以使用BigDecimal类。
本文记录了个人java与c易混淆的一些东西。
switch 支持的数据类型
C:
short int long char (unsigned,signed)
1 | switch(expression) |
expression结果必须是整型值(包括char),case标签必须是整数类型(包括char)的常量或整形常量表达式,不能用变量来用做case的标签。
java:
byte short int char 枚举 String
其中String(jdk1.7)以后才支持
expression本质上是支持*int*类型, byte short char 都默认转换成int,String根据哈希值,归跟到底还是int型。
expression与case是String或者不是String要一致。
数据类型的精确性
C语言的数据类型比较
1 | printf("%f",0.01 + 0.09); |
输出结果为:0.100000
Java的基本数据类型不是很精确:
1 | System.out.println(0.01 + 0.09); |
输出结果为:0.09999999999999999
要想在java中也使用精确的数据,可以使用BigDecimal类。
-------------本文结束感谢您的阅读-------------
本文链接: http://heathhou.github.io/2020/12/16/Java%E4%B8%8EC%E7%9A%84%E6%98%93%E6%B7%B7%E6%B7%86%E5%8C%BA%E5%88%AB/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!