- 浏览: 1111967 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
1、背景知识
在java中没有细讲,只是讲了float占32位(bit),double占 64位。
对于计算机来说,用位数表示是合适的。但有人喜欢用字节(byte)表示。一个字节占8位。
1 byte = 8 bit.
所以float占4个字节,double占8个字节。
不过我还是喜欢用位数表示。这样更直接,也更容易理解计算机是怎么存储这些类型的。
对于精度和范围,还是参考一下c++吧。
2、存储知识
计算器存储浮点数的方法:(用科学计数法存储)
将要存的数先转换为小数(0.xxxxxx)x10的n次幂的形式进行存储。
例如:
3.1415 将被转换为:0.31415 x 10^1
100000 将被转换为:0.1 x 10^6
首先申明一点,先范围(有效数字位,包括整数位和小数位),再精度。
3、下面切入正题
=====================
在c++中单精度float类型与双精度double类型的问题
单精度float,在计算机中使用 32 bit (4个字节)来表示,具有7位十进制有效数字
分析:
在这 32 bit 中,
- 1个bit表示符号位,
- 8个bit表示指数位,
- 剩下的23个bit是有效数字位。
2的23次方是8388608,即7位十进制有效数字。
一个单精度的浮点数在内存当中占用了32个bit位,按照浮点数的表示标准,最高位表示符号,这32位一部分用来表示阶码,一部分用来表示小数部分。
按照这个表示方法转化成10进制之后,它能表示的最高精度是7位有效数字。
比如
float a=3.14159;a在内存中实际上表示为0.314159乘以10的1次方(0是符号位),而分配给a的存储单元就分为两部分,一部分存0.314159,一部分存指数1,而且也都是转化为2进制来存。
==================
float ,1位符号位, 8位指数位,23位尾数位
double,1位符号位,11位指数位,52位尾数位
float尾数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位
double尾数52位,2^52=4.5E15,15位,所以double的有效位数是15位
-------
后记:
数一下有效数字位数(整数位+小数位),7位以内的用float,15位以内的用double
但是还有一点小小的区别:
float f = (float) 62345678.912345; // => 6.234568E7 共 7 位
float f2 = (float) 12345678.912345; // => 1.2345679E7 共 8 位
转自:
http://zhidao.baidu.com/question/415655003.html
http://zhidao.baidu.com/question/166445780.html
--
在java中没有细讲,只是讲了float占32位(bit),double占 64位。
对于计算机来说,用位数表示是合适的。但有人喜欢用字节(byte)表示。一个字节占8位。
1 byte = 8 bit.
所以float占4个字节,double占8个字节。
不过我还是喜欢用位数表示。这样更直接,也更容易理解计算机是怎么存储这些类型的。
对于精度和范围,还是参考一下c++吧。
2、存储知识
计算器存储浮点数的方法:(用科学计数法存储)
将要存的数先转换为小数(0.xxxxxx)x10的n次幂的形式进行存储。
例如:
3.1415 将被转换为:0.31415 x 10^1
100000 将被转换为:0.1 x 10^6
首先申明一点,先范围(有效数字位,包括整数位和小数位),再精度。
3、下面切入正题
=====================
在c++中单精度float类型与双精度double类型的问题
单精度float,在计算机中使用 32 bit (4个字节)来表示,具有7位十进制有效数字
分析:
在这 32 bit 中,
- 1个bit表示符号位,
- 8个bit表示指数位,
- 剩下的23个bit是有效数字位。
2的23次方是8388608,即7位十进制有效数字。
一个单精度的浮点数在内存当中占用了32个bit位,按照浮点数的表示标准,最高位表示符号,这32位一部分用来表示阶码,一部分用来表示小数部分。
按照这个表示方法转化成10进制之后,它能表示的最高精度是7位有效数字。
比如
float a=3.14159;a在内存中实际上表示为0.314159乘以10的1次方(0是符号位),而分配给a的存储单元就分为两部分,一部分存0.314159,一部分存指数1,而且也都是转化为2进制来存。
==================
float ,1位符号位, 8位指数位,23位尾数位
double,1位符号位,11位指数位,52位尾数位
float尾数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位
double尾数52位,2^52=4.5E15,15位,所以double的有效位数是15位
-------
后记:
数一下有效数字位数(整数位+小数位),7位以内的用float,15位以内的用double
但是还有一点小小的区别:
float f = (float) 62345678.912345; // => 6.234568E7 共 7 位
float f2 = (float) 12345678.912345; // => 1.2345679E7 共 8 位
转自:
http://zhidao.baidu.com/question/415655003.html
http://zhidao.baidu.com/question/166445780.html
--
发表评论
-
java 将文件夹所有的文件合并到指定的文件夹下
2020-06-30 19:17 1060场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 486多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 480一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 458转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 545一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 684POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 1066观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 677https://stackoverflow.com/a/177 ... -
Java lib 操作 excel 插入图片
2019-01-19 12:46 880https://poi.apache.org/componen ... -
数据库连接池C3P0
2018-05-29 16:50 892一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20748package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 810Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5721三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 842一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1409一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5385Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3834一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2703一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1058单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5566一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ...
相关推荐
解决java数值范围以及float与double精度丢失的问题 Java中的数值范围和浮点数精度问题是许多开发者经常遇到的问题。下面我们将详细探讨Java中的数值范围、float和double类型的精度问题,并且提供解决方案。 一、...
float和double浮点数类型的精度和范围解析 浮点数类型float和double是编程语言中最常用的数值类型,但是它们...因此,在商业计算中,我们应该使用java.math.BigDecimal来避免精度问题,而不是使用float和double类型。
标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...
标题中的“float、double类型介绍”指的是在编程语言中,如C++、Java或Python等,用于表示浮点数的数据类型。浮点数是计算机科学中用来表示小数的一种方式,因为它们不是精确的,而是近似的。浮点类型通常分为两种...
在Java和MySQL中,处理小数时需要注意一系列与精度、数据类型选择以及运算准确性相关的问题。首先,让我们深入了解Java中小数的保存方式。 Java提供了两种基本的小数数据类型:float和double。float占用4个字节,...
Java中的简单浮点数类型float和double不能够进行运算,因为大多数情况下是正常的,但是偶尔会出现如上所示的问题。这个问题其实不是JAVA的bug,因为计算机本身是二进制的,而浮点数实际上只是个近似值,所以从二进制...
java程序中数值的精度问题,float、double容易产生精度数值问题,不适合精度计算,而bigdecimal正好解决这一问题
本文主要探讨了浮点类型数据,即float和double在内存中的表示方式,以及由此产生的精度问题。 首先,浮点类型数据有两种主要形式:单精度(float)和双精度(double)。float在内存中占用32位,而double占用64位。这...
在IT领域,数据类型转换是常见的操作,尤其是在通信协议如MODBUS中,为了高效传输和正确解析数据,需要将数值转换成不同的格式。本篇主要介绍16位、32位以及64位数据如何转换为浮点型(float)和双浮点型(double)...
本文将详细探讨如何使用Java语言来实现IEEE 754标准中的单精度浮点数(Float)的解析过程。 #### IEEE 754标准简介 IEEE 754标准定义了浮点数的二进制格式以及运算规则。对于单精度浮点数来说,它占用32位(4字节...
在Java中,浮点数有两种主要形式:单精度浮点数(float)和双精度浮点数(double),它们分别使用32位和64位来存储。 1. **字节序**:在进行16进制到浮点数的转换时,必须考虑到字节序,即字节在内存中的排列顺序。...
在Java编程语言中,浮点数类型包括`float`和`double`,它们分别用于存储单精度和双精度浮点数。了解如何在源码级别获取这两种类型的最大和最小值对于编写高效且精确的代码至关重要。本文将深入探讨Java中获取浮点数...
在 Java 中,浮点数的表示形式有多种,包括 float 和 double 等,但是这些类型在进行计算时会出现精度问题,而 BigDecimal 则可以解决这种问题。本文将主要介绍 Java 中的 BigDecimal 和 double 的示例及相关问题...
Java 中的高精度整数和高精度小数 Java 中的高精度整数和高精度小数是指在 Java 编程语言中对大整数和小数的处理。高精度整数和高精度小数在实际应用中非常重要,例如在计算金钱的时候需要保留高精度小数,以避免...
在 Java 中,数字类型对应的是 java.lang.Integer、java.lang.Long、java.lang.Float、java.lang.Double 等类型。在 MySql 中,数字类型对应的是 INTEGER、BIGINT、FLOAT、DOUBLE 等类型。其中,INTEGER 类型用于...
Number(p,s) 类型对应 Java 中的浮点型,包括 float 和 double 等。 在 Oracle 中,Date 类型对应 Java 中的 java.util.Date 和 java.sql.Date 类型。其中 java.util.Date 类型的作用范围更广泛,因此通常应用于...
在Java中,主要使用两种浮点数类型:`float`(单精度)和`double`(双精度)。`double`类型的精度更高,通常用于需要高精度计算的场景。 #### 1.2 文件读取机制 在Java中,文件读取通常涉及到输入流(`InputStream`...
* double:C#中的 double 类型对应Java中的 double 类型,都是双精度浮点数,取值范围为 -1.79769313486232e308 到 1.79769313486232e308。 四、字符类型 C#和Java都支持字符类型,包括 char 类型。这些类型都可以...
Java 中的简单类型包括 boolean、byte、char、short、int、long、float、double 和 void 八种类型,每种类型都有其对应的封装器类,如 Boolean、Byte、Character、Short、Integer、Long、Float、Double 和 Void。...