什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?
前言
作为一名java学习者,怎能不懂这些java基础中的基础呢?本文就带各位温顾温顾java浮点型、单精度浮点数、双精度浮点数。
浮点型
首先明确java中浮点型数据类型主要有:单精度
float、双精度double至于浮点型就是跟
int,string类型差不多。都是数据类型。
浮点型浮点型别给我整些花里胡哨的定义,浮点型简单来说就是表示带有小数的数据,而恰恰小数点可以在相应的二进制的不同位置浮动,可能是这样就被定义成浮点型了。不得不佩服这文化程度,定义个数据名称都这么有深度
浮点型常量 Java的实常数有两种表示形式:
1、 十进制数形式:由数字和小数点组成,且必须有小数点,如
0.123,123.0
2、科学计数法形式:如:
123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数(当然也包括负整数)。
科学计数法中的E
了解浮点型常量 Java的实常数有两种表示形式之后,很有必要给各位科普科普下科学计数法中E的面貌了~
E是指数的意思,E代表的英文是exponent,E表示10的多少次方的意思。比如
7.823E5 = 782300这里E5表示10的5次方,再比如54.3E-2 = 0.543这里E-2表示10的-2次方
再补充一点(针对负次方理解)
一个数的负几次方就是这个数的几次方的倒数。
比如: 2的负1次方=2的1次方分之一=
1/2比如: 3的负2次方=3的2次方分之一=
1/9
单精度浮点数(float)
单精度浮点数在机内占
4个字节、有效数字8位、表示范围:-3.40E+38 ~ +3.40E+38
在Java语言当中,所有的浮点型字面值 【V8提示】浮点型简单来说就是表示带有小数的数据 默认当做double类型来处理,要想该字面值当做float类型来处理,需要在字面值后面添加F/f,或者强制装换为float。具体如下代码:
public static void main(String[] args) {
//3.10是浮点型,浮点型字面值默认当做double类型来处理,直接编译通过;
double d=3.10;
//3.10是浮点型,则必须加 F或者f,若没加,直接编译不通过,会报错“损失精度”
float f=3.10; //编译出错会报错“损失精度”
// 解决办法:
// 第一种方式:强制类型转换
float f1=(float)5.1;
// 第二种方式:没有类型转换;
folat f2=5.1f;
}
再来看看下面的测试,结果肯定十之八九会在意料之外,哈哈~
public static void main(String[] args) {
float a = 12345678.90123456789f;
double b=0.12345678901234567890;
float c=0.12345678901234567890f;
System.out.println(a);
System.out.println(b);
System.out.println(c);
打印结果
a = 1.2345679E7
b = 0.12345678901234568
c = 0.12345679
}
双精度浮点数(double)
双精度浮点数在机内占
8个字节、有效数字16位、表示范围:-1.79E+308 ~ +1.79E+308
double的精度太低,不适合用于做财务软件,财务涉及到钱的问题,要求精度较高,所以在java中有一个基础的类库名为:java.math.BigDecimal,但这个BigDecimal类型是引用类型不是基础类型,切记!!!
在讲单精度浮点数(float)的时候,差不多顺道把double之间的区别讲了哈哈,所以最后给张很经典的图片“敷衍敷衍”下,哈哈哈 哎哎哎..别打...别打...别打脸QAQ

想深入了解浮点数在计算机中存储方式可以参考这篇文章
浮点数在计算机中存储方式
什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?的更多相关文章
- Java浮点数float,bigdecimal和double精确计算的精度误差问题总结
(转)Java浮点数float,bigdecimal和double精确计算的精度误差问题总结 1.float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结 ...
- float:浮点型double:双精度实型decimal:数字型单精度浮点数(Single)双精度浮点数(double)
单精度浮点数(Single) 双精度浮点数(double) Decimal为SQL Server.MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小 ...
- IEEE浮点数float、double的存储结构
众所周知,C的float.VB的Single都是32位浮点数变量类型(也叫单精度浮点数),C的double和VB的Double则都是64位的浮点数变量类型(也叫双精度浮点数).有些编译器还支持更屌的l ...
- 小朋友学C语言(4):单精度浮点数与双精度浮点数
上节课简单介绍了浮点数.计算机程序中的浮点数分为单精度浮点数和双精度浮点数. 单精度和双精度精确的范围不一样. 计算机里的最基本的存储单位用位(bit)来表示.bit只能用来存储0或1. 稍大一点的单 ...
- Relearning PHP (2) – php 的浮点数float
Relearning PHP (2) – php 的浮点数float 暂无评论 php有很多坑,但是并不妨碍他是最好的语言.其他语言对于浮点数处理同样有问题,这应该是个“共有坑”.不信可以用googl ...
- 【转】单双精度浮点数的IEEE标准格式
原文网址:http://blog.chinaunix.net/uid-24118190-id-75212.html 单双精度浮点数的IEEE标准格式 关键字:浮点数 IEEE标准 大多数高级语言按照I ...
- OpenMesh 将默认的 float 类型改为 double 类型
OpenMesh 中默认的数据类型都是 float 类型的,如果要将其默认的 float 类型改为 double 类型,可以这么做: #include <OpenMesh/Core/Mesh/P ...
- C语言atof()函数:将字符串转换为double(双精度浮点数)
头文件:#include <stdlib.h> 函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为:double atof (const char* str); ...
- delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)
重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...
随机推荐
- Spark 学习笔记之 Streaming和Kafka Direct
Streaming和Kafka Direct: Spark version: 2.2.0 Scala version: 2.11 Kafka version: 0.11.0.0 Note: 最新版本感 ...
- Linux-rhel-server-7.4-Mysql-5.7安装记录
解压下载的tar包: tar -xf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar 安装一下rpm包: sudo rpm -ivh mysql-community- ...
- 从0开始学FreeRTOS-(列表&列表项)-6
# FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像. 在FreeRTOS中,列表与列表项使用得非常多,是Free ...
- Vue入门教程 第二篇 (数据绑定与响应式)
数据绑定 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: <div id="app"> {{ message }} </ ...
- Head First设计模式——策略模式
1.继承带来的扩展和复用问题 继承作为面向对象的三大要素(封装.继承.多态)之一为什么会带来问题,问题如何解决然后形成一种设计模式,head frist设计模式书中以鸭子作为例子讲解什么情况下继承的方 ...
- 【RT-Thread】线程的基本知识
什么是线程? 人们在生活中处理复杂问题时,惯用的方法就是分而治之,即把一个大问题分解成多个相对简单.比较容易解决的小问题,小问题逐个被解决了,大问题也就随之解决了.同样,在设计一个较为复杂的应用程序时 ...
- java集合之ArrayList链表基础
ArrayList可变数组 : arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现.可存放null,除了非同步的之外,大致等同Vector.适用快速访问,复制.序 ...
- gperftools::TCMalloc
VS2013编译gperftools-2.4 1)https://github.com/gperftools/gperftools 下载 gperftools-2.4.zip 版本.2)解压 ...
- Java线程池构造参数详解
在ThreadPoolExecutor类中有4个构造函数,最终调用的是如下函数: public ThreadPoolExecutor(int corePoolSize, int maximumPool ...
- spring cloud alibaba 简介
### Spring Cloud Alibaba [官方github地址](https://github.com/alibaba/spring-cloud-alibaba) Spring Cloud ...