java float跟double类型区别

单精度和双精度的取值范围和精度是不同的

单精度:float的精度是6位有效数字,取值范围是10的-38次方到10的38次方,float占用4字节空间

双精度:double的精度是15位有效数字,取值范围是10的-308次方到10的308次方,double占用8字节空间。

原文地址:https://www.cnblogs.com/mileSs/p/8386968.html

时间: 2024-11-10 05:31:54

java float跟double类型区别的相关文章

float及double类型减法运算时精度丢失问题

当float和double类型在进行减法运算时,会出现精度丢失问题,这种问题主要是由于计算机中普遍使用2进制所造成的.在此做为记录,防止日后遗忘.     public static void main(String[] args) {         float a = 2.1f;         float b = 2.0f;         float c = a - b;         System.out.println("a-b=" + c);     }     //输

float和double类型的存储方式

Float double 类型在计算机的存储方式 计算机中只认识10的二进制数,那么该如何存储小数呢? 那么我们先看Floa类型: Float在计算机(32位)中是4个字节的,具体地:第一位为符号位0为正,1为负 第2到第9位为指数位,第10到32位为尾数位,具体地如下图所示: 1 2 9 10 32 现在我们举个例子: 8.25的二进制表示方法为:1000.01 =1.00001*23 ,指数为3,尾数为00001,那么它怎样在二进制中存储呢? 首先看符号位为正,所以第一位为0,指数为3,要加

Java 浮点数 float或double类型的表示范围和精度

隐约记得,浮点数判断大小好像有陷阱,因为底层的二进制数不能精确表示所有的小数.有时候会产生让人觉得莫名其妙的事情. 如在java中, 0.99999999f==1f //true 0.9f==1f //false 要明白这些,首先要搞清楚float和double在内存结构 1.内存结构 float和double的范围是由指数的位数来决定的. float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位) 8bits(指数位) 23bits(尾数位) dou

float和double的区别

float和double 有什么区别,使用时注意什么 float : 单精度浮点数 double : 双精度浮点数 两者的主要区别如下: 01.在内存中占有的字节数不同 单精度浮点数在机内存占4个字节 双精度浮点数在机内存占8个字节 02.有效数字位数不同 单精度浮点数有效数字8位 双精度浮点数有效数字16位 03.数值取值范围 单精度浮点数的表示范围:-3.40E+38~3.40E+38 双精度浮点数的表示范围:-1.79E+308~-1.79E+308 04.在程序中处理速度不同 一般来说,

java Float和Double 之间的相互转型问题

由于float 是单精度浮点小数,而double 是双精度浮点小数 单精度型能精确到七位,而双精度能精确到15位.用户在选用这些数据类型时,要注意变量所取值的范围.并且数值为整数时,为了运算速度,不用把变量硬定义为浮点型. 如果要将Float和Double之间相互转型,java 提供了一下方法Float.doubleValue()和Double.floatValue() 查看JDK1.6中对其方法进行这样解释 Float.doubleValue() public double doubleVal

基本数据类型float和double的区别

float : 单精度浮点数 double : 双精度浮点数 两者的主要区别如下: 01.在内存中占有的字节数不同 单精度浮点数在机内存占4个字节 双精度浮点数在机内存占8个字节 02.有效数字位数不同 单精度浮点数有效数字8位 双精度浮点数有效数字16位 03.数值取值范围 单精度浮点数的表示范围:-3.40E+38~3.40E+38 双精度浮点数的表示范围:-1.79E+308~-1.79E+308 04.在程序中处理速度不同 一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快 如果

Java学习笔记--double类型数据精度

在一次面试中被问到,有两个double类型的数相减,会出现精度丢失,应该怎么办,有什么解决方法.今天特地去搜了下,解决方法就是用BigDecimal类对数据进行处理. 了解详细参考:http://blog.csdn.net/u011328015/article/details/43969129

C语言:自己动手查看float以及double类型的变量2.5在内存中的存储方式。

编写如上图程序.Fn与F10进调试界面:选择如下操作进入内存1查看内存 分别输入&a,&b查看内存: 举例float float a = 2.5 10.1 = 1.01 *2 ^1; 符号位 为0: 指数位8位,为127 + 1= 128 =1000 0000: 位数位23位,为0100  0000  0000 0000  000: 32位二进制数位为 0100   0000    0010    0000  0000 0000  0000 地址为40200000

java中如何使用BigDecimal使得Double类型保留两位有效数字

一.场景:从数据表中读出Decimal类型的数据直接塞给Double类型的对象时,并不会有什么异常. 如果要再此基础上计算,就会发生异常. 比如:读出数据为0.0092,将其乘以100,则变成了0.919999999999999... 二.原因: java mysql 数据类型对照如下: 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N CHAR