单精度小数java_跟我学java编程—java的双精度和单精度的区别

前面介绍了整型数据类型,用于存储整型数据。现实问题中不但有整型数值,还有小数。Java语言也提供了针对小数的存储类型,分别是float类型和double类型。

Java语言的浮点类型有两种不同的表示形式:十进制数和科学计数法。十进制数形式,由数字和小数点组成,且必须有小数点,如0.123、12.85、26.98等;科学计数法形式,如:2.1E5、3.7e-2等。其中e或E之前必须有数字,且e或E后面的指数必须为整数。

科学计数法

一种简化计数的方法,对于位数较小的数值,科学计数法没有什么优势,但对于位数较多的数值其计数方法的优势就非常明显了。例如:光的速速是300,000,000米/秒,全世界人口数大约是6,100,000,000。类似光的速度和世界人口数这样大数值的数,读、写都很不方便,仔细观察上面的两个数值,光的速度可以写成3*108,全世界人口数可以写成6.1*109。这种计数方法就是科学计数法,用Java语言科学计数法表示光速是3E8,世界人口数大约是6.1E9。

一个较大的数值(>0)可以用下面的方式来表示:

a * 10n (1<=a<10,n为整数)

其中,a是该数值的有效位数,有效位数从左边第一个不是0的数起,到末尾数字为止,所有的数字(包括0,科学计数法不计10的n次方),称为有效数字。例如:光速是3E8,其有效数字是1位,值是3;世界人口数大约是6.1E9,其有效数字是2位,值是6.1。

n是该数值的整数部分减1的正整数。

一个较小的数值(<0)可以用下面的方式来表示:

a * 10-n (1<=a<10,n为整数)

a的取值同上面相同,n的取值为原数中左边第一个不为0的数字前面所有的0的个数(包括小数点前面的0)。

在Java语言中,浮点类型有float和double两种,分别代表单精度和双精度的数值。精度是指描述一个数值的准确程度,在数学运算中,经常会用到近似数,近似数与原数值非常相近,但又不完全符合原数值,只能说在某种程度上近似。精度与近似数相似,也是用一个与原数值非常相近的数代替原来的数值。

前面说过存储一个数值所用的字节越多,其精度越高,数值范围也越大。由此看来,精度与存储字节数密切相关,float类型的存储空间是4个字节,其表示的值范围约为10-38到1038,double类型的存储空间是8个字节,其表示的值范围约为10-308到10308,float存储数值的精度和范围要小于double存储数值的精度和范围。因此,float是单精度数值,double是双精度数值。

94d04bfc3d81ba64fdce14c33affb138.png图 4-6 浮点型变量占用的存储空间

float变量可按如下方式声明:

256b0f1e7b993c3d8866e195baa06a9b.png

double变量可按如下方式声明:

1db2cfccb2722542e25de9aab7d8785d.png

数值赋值给float变量时,数值尾部要加上小写“f”或大写“F”声明为float数值,不然编译器会给出“可能损失精度的错误”如下图所示。因为在Java语言中,带小数的数值默认为是double类型,double类型转换为float类型,自然要损失精度了。

ab6199596c6c322a88c8d91d974d0bf8.png图 4?7 float类型赋值错误

73640f72de1bd2daadd766ed5847c1c1.png

在 Java 程序中使用浮点数和小数时,不能假定浮点计算一定产生整型或精确的结果,浮点数不是精确值,使用它们会导致舍入误差。

061d4cb26eeae9f4fd3570b1deae8305.png

(1)单精度浮点型占用()字节的存储空间

A.4

B.8

C.2

D.1

(2)请填入正确的赋值语句()

A. float price = 12.35;

B.float price = 12.35f;

C.float price = 12.35f

D.float price = 3.1e2

(3)36.89用科学计数法表示为()

A. 3.689e1

B . 3.689e2

C. 3.689e0

D. 36.89e1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值