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.在程序中处理速度不同

    一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快

如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转

  例如:float  a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写)

注意:float是8位有效数字,第7位数字将会四舍五入

面试题:

  1.java中3*0.1==0.3将会返回什么?true还是false?

   fale,因为浮点数不能完全精确的表示出来,一般会损失精度。

  2.java中float f = 3.4;是否正确?

     不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造  成精度损失,因此需要强制类型转换float f = (float)3.4;或者写成 float f = 3.4f;才可以。

原文地址:https://www.cnblogs.com/yunhemeihe/p/12115220.html

时间: 2024-10-29 08:09:29

float和double的区别的相关文章

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

基本数据类型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处理单精度浮点数的速度比处理双精度浮点数快 如果

FLOAT 和 DOUBLE区别

以下是 FLOAT 和 DOUBLE 的区别: float : 单精度浮点数 double : 双精度浮点数 ·浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节. ·浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节. 一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快,尽量使用单精度浮点数float 原文地址:https://www.cnblogs.com/ConnorShip/p/10421671.html

MySQL中 DECIMAL FLOAT DOUBLE的区别

第一篇文章: MySQL中Decimal类型和Float Double等区别 MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值.float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理.这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实

Java浮点数float和double精确计算的精度误差问题总结

1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结果出现误差. 原因:超出float精度范围,无法精确计算. float和double的精度是由尾数的位数来决定的.浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响. float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字: double:2^5

精确计算java中float和double的精度

[本文相关的代码放在github上,地址为:https://github.com/VigourJiang/StructuredFloat] Java中double类型的格式是遵循IEEE 754标准的.尽管数学意义上的小数是连续的,但double仅仅能表示其中的一些离散点,把这些离散点组成的集合记为S,S的大小还是有限的.如果要保存的小数P刚好在集合S内,那么double类型就能精确的表示P:否则double类型只能从集合S中找一个与P最近的离散点P'代替P. 以上表述对于float也成立.IE

c语言基本数据类型short、int、long、char、float、double

C 语言包含的数据类型如下图所示: 一.数据类型与“模子”short.int.long.char.float.double 这六个关键字代表C 语言里的六种基本数据类型. 怎么去理解它们呢? 举个例子:见过藕煤球的那个东西吧?(没见过?煤球总见过吧).那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了.半径12cm,12 个孔.不同型号的藕煤器咔出来的煤球大小不一样,孔数也不一样.这个藕煤器其实就是个模子. 现在我们联想一下,short.int.long.char.float.dou

java中short、int、long、float、double取值范围

一.分析基本数据类型的特点,最大值和最小值.1.基本类型:int 二进制位数:32包装类:java.lang.Integer最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)最大值:Integer.MAX_VALUE= 2147483647  (2的31次方-1)2.基本类型:short 二进制位数:16包装类:java.lang.Short最小值:Short.MIN_VALUE=-32768 (-2的15此方)最大值:Short.MAX_VALUE=327

Java中的简单浮点数类型float和double不能够进行精确运算

在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { double radius; static final double PI=3.14; public Circle(){this.radius=0;} public Circle(double r){this.radius=r;} public double getArea(){return PI*this