Java中0.2减0.1 结果为什么不是0.1?
double 表示这种类型的数值精度是 float 类型的两倍(有人称之为双精度数值)。绝大部 分应用程序都采用double 类型。在很多情况下,float 类型的精度很难满足需求。实际上,只 有很少的情况适合使用 float 类型,
例如,需要单精度数据的库, 或者需要存储大量数据。 float类型的数值有一个后缀 F 或 f (例如,3.14F)。没有后缀 F 的浮点数值(如 3.14 ) 默 认为double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D)。 0
注?: 可以使用十六进制表示浮点数值。
例如,0.125=2—3 可以表示成 0xl.0p-3。在十六 进制表示法中,使用 p 表示指数, 而不是 e。注意, 尾数采用十六进制,指数采用十进 制。指数的基数是 2,而不是 10。所有的浮点数值计算都遵循 IEEE 754规范。具体来说,下面是用于表示溢出和出错情况 的三个特殊的浮点数值:
•正无穷大 •负无穷大 •NaN (不是一个数字) 例如,一 正整数除以 0 的结果为正无穷大。计算 0/0 或者负数的平方根结果为 NaN。
注?: 常量 Double_POSITIVE_INFINITY、Double.NEGATIVEJNFINITY 和 Double.NaN (以及相应的 Float 类型的常量)分别表示这三个特殊的值, 但在实际应用中很少遇到。 特别要说明的是, 不能这样检测一个特定值是否等于 Double.NaN: if (x = Double.NaN) // is never true 所有“ 非数值” 的值都认为是不相同的。然而,可以使用 Double.isNaN 方法:
if (Double.isNaN(x)) // check whether x is "not a number"
警告: 浮点数值不适用于无法接受舍入误差的金融计算中。 例如,命令 System.out.println ( 2.0-1.1 ) 将打印出 0.8999999999999999, 而不是人们想象的 0.9。这种舍入误差的主要 原因是浮点数值采用二进制系统表示, 而在二进制系统中无法精确地表示分数 1/10。这 就好像十进制无法精确地表示分数 1/3—样。如果在数值计算中不允许有任何舍入误差, 就应该使用 BigDecima丨类, 本章稍后将介绍这个类,
Java中0.2减0.1 结果为什么不是0.1?的更多相关文章
- Java中常用加减密方式
1.加密概述: 加密就是是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使以获得了加密的信息,但因不知解密方式,仍无法了解信息的内容.大体上又分为双向加密和单向加密. 2.单项加密 2.1.概 ...
- Java中时间加减的比较
public class TestDate{ public static void main(String[] args){try{ Date date=new Date(); DateFormat ...
- [置顶] Java中字符串为什么不以\0结尾
其实这个问题没有什么好说的,Java里面一切都是对象,是对象的话,字符串肯定就有长度,即然有长度,编译器就可以确定要输出的字符个数,当然也就没有必要去浪费那1字节的空间用以标明字符串的结束了. 学过C ...
- Java中字符串为什么不以\0结尾
Java中字符串为什么不以\0结尾 其实这个问题没有什么好说的,Java里面一切都是对象,是对象的话,字符串肯定就有长度,即然有长度,编译器就可以确定要输出的字符个数,当然也就没有必要去浪费那1字节的 ...
- java中获取比毫秒更为精确的时间
所以这里提醒做非常精确的时间统计的朋友,谨慎使用System.currentTimeMillis() . 在Java中可以通过System.currentTimeMillis()或者System.na ...
- java中实现与.net的format格式化字符串输出
Java中的格式化字符串 System.out.println(MessageFormat.format("name={0}", "张三")); .net中的格 ...
- JAVA中使用HTTP 1.1提高基于AXIS 1.4的web service的性能
HTTP 1.1会在第一次连接的时候进行认证, 而在一定时间内保持连接而不用重新验证. 一般情形下,每个web service请求都会在web service服务端验证, 而验证会消耗很多时间, 因此 ...
- Java中小数精度问题
代码如下:主要是利用java中写好的DecimalFormat类进行设置(#,0,%) import java.text.DecimalFormat; import java.util.Arrays; ...
- java 中的字符串处理--正则表达式
最近在做一些支付报文处理工作,需要从各种各样的报文中提取需要的信息比如(金额,订单号...),每个渠道报文各式各样,想要写一个通用的提取逻辑,于是就回顾java正则表达式的用法.当然我们可以自己写一些 ...
- java中Dateformat类的详细使用(详解)
DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat ...
随机推荐
- 07-Python异常处理
什么是异常? Python无法正常处理程序时就会发生一个异常,这时Python就会抛出一个对象,表示这是一个错误. 必须处理异常,否则程序可能会停止运行,或者出现异常现象. 如:4/0就会抛出异常,因 ...
- 05-CentOS防火墙
概述 CentOS中的防火墙有很多,如SELinux.Firewall.TCP Wrappers.iptables/netfilter. 每种防火墙都有各自擅长的地方. 这里主要讲两种:SELinux ...
- CF1862G 题解
首先这个查询操作很迷,考虑先化简查询操作. 不难发现由于每次是加上一个逆的等差序列,因此一次操作完每个数与它的前驱之差一定会减少,因此加上等差序列的次数就等于全局每个数与它的前驱之差最大值. 又因为会 ...
- debian11 简单搭建go环境
简单环境,目前仅支持单版本go,后续可以考虑直接把go环境放到docker中或podman中,这样每个容器都是一套go版本. 新建文件夹目录 # 我直接用的root账户 cd /root mkdir ...
- Django生成数据库表时报错 __init__() missing 1 required positional argument: 'on_delete'
原因: 在django2.0后,定义外键和一对一关系的时候需要加上on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错 例如: owner=models.ForeignKey(U ...
- 【Playwright+Python】系列教程(五)元素定位
一.常见元素定位 定位器是 Playwright 自动等待和重试能力的核心部分.简而言之,定位器代表了一种随时在页面上查找元素的方法,以下是常用的内置定位器. 1.按角色定位 按显式和隐式可访问性属性 ...
- 解决方案 | 在 Tkinter 中导入 pywinauto/pyautogui 时窗口大小发生变化
上面问题也可以换一个说法,pywinauto/pyautogui 时改变了tkinter的原有的窗口大小.这个问题困扰了我好几天而且网上有这样的问题但是并没有答案,今天摸索出答案给大家分享下.解决方法 ...
- WSS SSL HTTPS之间的关系
ssl: secure socket layer 安全套接层,简单来说是一种加密技术,通过它可以在通信的双方上建立一个安全的通信链路,因此数据交互的双方可以安全地通信,而不用担心数据被窃取:wss: ...
- Django 自带忘记密码,密码重置功能
registration/password_reset_form.html: 重置密码表单模板 registration/password_reset_email.html: 发送重置密码邮件模板 r ...
- [oeasy]python0050_动态类型_静态类型_编译_运行
动态类型_静态类型 回忆上次内容 上次了解了 帮助文档的 生成 开头的三引号注释 可以生成 帮助文档 文档 可以写成网页 python3 本身 也有 在线的帮助手册 目前的程序 提高了 可读性 ...