关于JAVA的浮点型 - float和double数据类型

/*

关于浮点型数据类型:
	float 单精度【4个字节】
	double 双精度 【8个字节,精度较高】

double的精度太低【相对来说的】,不适合做财务软件。
财务涉及到钱的问题,.0000000000000000000000000000000000000000000000000000
要求精度较高,所以SUN在基础SE类库中为程序员准备了精确度更高的类型,只不过这种类型是一种
引用数据类型,不属于基本数据类型,它是:java.math.BigDecimal

其实java程序中SUN提供了一套庞大的类库,java程序员是基于这套基础的类库来进行开发的,所以要
知道java的SE类库的字节码在哪里(.class文件),要知道java的SE类库的源码(.java)在哪儿?
	* SE类库字节码:jdk/jre/lib/rt.jar
	* SE类库源码:jdk/src.zip

例如:String.java和String.class
我们的(String args[])中的String使用的就是String.class字节码文件

在java语言当中,所有的浮点型字面值【3.0】,默认被当做double类型来处理。
要想该字面值当做float类型来处理,需要在字面值后面添加F/f

注意:
	double和float在计算机内部二进制存储的时候存储的都是近似值。
	在现实世界当中有一些数字是无限循环的,例如:3.3333333333333333...
	计算机的资源是有限的,用有限的资源存储无限的数据只能存储近似值。

*/

public class test4
{
public static void main(String args[]){

	//3.0是double类型的字面值
	//d是double类型的变量
	//不存在类型转换
	double d = 3.0;
	System.out.println(d);

	//5.1是double类型的字面值
	//f是float类型的变量
	//大容量转换成小容量需要加强制类型转换符,所以以下程序编译错误。
	//float f = 5.1;

	//解决方案:
	//第一种方式:强制类型转换
	//float f = (float)5.1;

	//第二种方式:没有类型转换
	float f = 5.1f;
	System.out.println(f);

	
	/*

	以下运算,由于涉及到浮点数的加减乘除法,小数将先进行二进制的转换,再进行加减乘除,因此,得出的运算结果和实际不一样:
		System.out.println(3 * 0.1);
		System.out.println(0.05+0.01);
		System.out.println(1.0-0.42);
		System.out.println(4.015*100);
		System.out.println(123.3/100);
	*/
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值