java中的数据类型
基本数据类型
数值型
整数类型(将根据类型分配不同的内存空间,开发中一般都使用int直接定义整型)
byte(1个字节) -128 至 127
short(2个字节) -32768 至 32767
int(4个字节) -2147483648 至 2147483647 -->21亿半 1<<31)-1
long(8个字节)
浮点型
float(4个字节,单精度) 1.23f 必须用f来显示表明,什么时候用float呢
double(8个字节,双精度) 1.23 默认为double类型
字符型
char(2个字节,0-65535) 'a' 一个中文字符占2个字节,所以可以用char来表示
布尔型
boolean true/false
引用数据类型
类 class
接口 interface
数组 [ ]
==============================================================
还有一些其它的类型,但不是基本数据类型
String
BigDecimal
===============================================================
使用Double计算存在数据丢失问题
原因:浮点数不能准确的表示10进制数,只能以最接近的小数来表示,所以参与运算后结果会不准确
浮点数一般用于科学运算
使用Double进行计算
public class Test {
public static void main(String[] args) {
double x = 3.3;
double y = 2.4;
double z = 0.9;
double result = (x-y)/z;
System.out.println(result);
//结果:0.9999999999999999,存在误差
}
}
使用BigDecimal进行计算(商业应用中推荐使用BigDecimal)
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
BigDecimal x = BigDecimal.valueOf(3.3);
BigDecimal y = BigDecimal.valueOf(2.4);
BigDecimal z = BigDecimal.valueOf(0.1);
BigDecimal result = x.subtract(y).divide(z);
System.out.println(result);
//结果为9,正确!
}
}