java浮点类型介绍
在
学习java开发中,那么java
浮点类型是我们必不可少学习的知识点,下面介绍一下java浮点类型。
1. float型
常量:453.5439f,21379.987F,231.0f(小数表示法),2e40f(2乘10的40次方,指数表示法)。需要特别注意的是:常量后面必须要有后缀“f”或“F”。
变量:使用关键字float来声明float型变量,
例如:float x=22.76f,tom=1234.987f,weight=1e-12F;
精度:float变量在存储float型数据时保留8位有效数字,实际精度取决于具体数值。
对于float型变量,内存分配给4个字节,占32位。float的取值范围为负的2的31次方到正的2的31次方减一。
2. double 型
常量:2389.539d,2318908.987,0.05(小数表示法),1e-90(1乘10的-90次方,指数表示法)。对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
变量:使用关键字double来声明double型变量,
例如:double height=23.345,width=34.56D,length=1e12;
对于double型变量,内存分配给8个字节,占64位。Double的取值范围为负的2的63次方到正的2的次63次方减一。
精度:double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。
示例
import java.util.Scanner;
public class Demo5{
public static void main(String args[]){
float weight = 82.5f; /*声明一个float变量,82.5f中的f不能省略掉
int height = 176; /*身高176 整数
double d = (height-100)/weight; /*两者之间的差值,d在一定程度上可以显示偏胖还是偏瘦
System.out.println("体重:"+weight); /*打印这三个变量
System.out.println("身高:"+height);
System.out.println("系数:"+d);
}
}
第一次打印结果,可以看出精度实际取决于具体数值
数据转换
Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:
byte short char int long float double
★当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如:
float x=100;
★当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;
例如
int x=(int)34.89; //强制转换
★当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;例如,常量128的属于int型常量,超出byte变量的取值范围,如果赋值给byte型变量,必须进行byte类型转换运算(将导致精度的损失),如下所示:
byte a=(byte)128;
★另外一个常见的错误就是把一个double型常量赋值给一个float型变量时没有进行强制转换,如下所示:
float x=12.4; //12.4隐藏是一个字母d,double型常量
输出和输入数据
1、输入数据
Scanner是JDK1.5新增的一个类,可以使用Scanner类创建一个对象:
Scanner reader=new Scanner(System.in);
reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:
nextBoolean()、nextByte()、 nextShort()、 nextInt()、 nextLong()、nextFloat()、nextDouble()。
上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认。
2、输出数据
用System.out.println()或System.out.print()可输出串值、表达式的值,二者的区别是前者输出数据后换行,后者不换行。
允许使用并置符号:“+”将变量、表达式或一个常数值与一个字符串并置一起输出,如:
System.out.println(m+"个数的和为"+sum);
System.out.println(“:”+123+“大于”+122)
JDK1.5新增了和C语言中printf函数类似的数据输出方法,该方法使用格式如下:
System.out.printf("格式控制部分",表达式1,表达式2,…表达式n)
格式控制部分由格式控制符号:%d、%c、%f、%s和普通的字符组成,普通字符原样输出。格式符号用来输出表达式的值。
%d:输出int类型数据值.
%c:输出char型数据.
%f:输出浮点型数据,小数部分最多保留6位.
%s:输出字符串数据。
输出数据时也可以控制数据在命令行的位置,例如:
%md:输出的int型数据占m列 %m.nf:输出的浮点型数据占m列,小数点保留n位。
import java.util.Scanner; /* 导入这个类库,就可以使用这个类
public class Demo5{
public static void main(String args[]){
Scanner reader=new Scanner(System.in); /*使用这个类Scanner,创建一个对象reader
System.out.println("please input int"); /*获取用户的输入数据
int i = reader.nextInt(); /*用int来承接用户输入的数据
System.out.println("you input:"+i); /*输出数据
int i = 12; /*输出
System.out.printf("i的值是:%d",i); /*打印i的值
}
}
第二次打印 输入
第三次打印 输出