Java Double 类有哪些重点需要掌握?

利用BigDecimal类巧妙处理Double类型精度丢失 我们已经明白为什么精度会存在丢失现象,那么我们就应该知道,当某个业务场景对double数据的精度要求非常高时,就必须采取某种手段来处理这个问题,这也是BigDecimal为什么会被广泛应用于金额支付场景中的原因啦。精度丢失的问题是在其他计算机语言中也都会出现,float和double类型的数据在执行二进制浮点运算的时候,并没有提供完全精确的结果。可以看到,使用方法一的构造函数仍然出现了精度丢失的问题,而方法二和方法三符合我们的预期,为什么会这样呢?​ 方法中的参数也必须是BigDecimal的对象。 阅读详情

        Double 类在对象中包装了一个基本类型 double 的值。Double 类对象包含一个 double 类型的字段。此外,该类还提供了多个方法,可以将 double 类型与 String 类型相互转换,同时 还提供了处理 double 类型时比较常用的常量和方法。

Double 类的构造方法

Double 类中的构造方法有如下两个。

  • Double(double value):构造一个新分配的 Double 对象,它表示转换为 double 类型的参数。
  • Double(String s):构造一个新分配的 Double 对象,它表示 String 参数所指示的 double 值。


例如,以下代码分别使用以上两个构造方法获取 Double 对象:

Double double1 = new Double(5.456); // 以 double 类型的变量作为参数创建 Double 对象

Double double2 = new Double("5.456"); // 以 String 类型的变量作为参数创建 Double 对象

Double 类的常用方法

在 Double 类内部包含一些和 double 操作有关的方法,见下表。

方法返回值功能
byteValue()byte以 byte 类型返回该 Double 的值
doubleValue()double以 double 类型返回该 Double 的值
fioatValue()float以 float 类型返回该 Double 的值
intValue()int以 int 类型返回该 Double 的值(强制转换为 int 类型)
longValue()long以 long 类型返回该 Double 的值(强制转换为 long 类型)
shortValue()short以 short 类型返回该 Double 的值(强制转换为 short 类型)
isNaN()boolean如果此 Double 值是一个非数字值,则返回 true,否则返回 false
isNaN(double v)boolean如果指定的参数是一个非数字值,则返回 true,否则返回 false
toString()String返回一个表示该 Double 值的 String 对象
valueOf(String s)Double返回保存指定的 String 值的 Double 对象
parseDouble(String s)double将数字字符串转换为 Double 数值

        例如,将字符串 56.7809 转换为 double 类型的数值,或者将 double 类型的数值 56.7809 转换为对应的字符串,以下代码演示如何实现这两种功能:

String str = "56.7809";

double num = Double.parseDouble(str); // 将字符串转换为 double 类型的数值

double d = 56.7809;

String s = Double.toString(d); // 将double类型的数值转换为字符串

        在将字符串转换为 double 类型的数值的过程中,如果字符串中包含非数值类型的字符,则程序执行将出现异常。

Double 类的常用常量

在 Double 类中包含了很多常量,其中较为常用的常量如下。

  • MAX_VALUE:值为 1.8E308 的常量,它表示 double 类型的最大正有限值的常量。
  • MIN_VALUE:值为 4.9E-324 的常量,它表示 double 类型数据能够保持的最小正非零值的常量。
  • NaN:保存 double 类型的非数字值的常量。
  • NEGATIVE_INFINITY:保持 double 类型的负无穷大的常量。
  • POSITIVE_INFINITY:保持 double 类型的正无穷大的常量。
  • SIZE:用秦以二进制补码形式表示 double 值的比特位数。
  • TYPE:表示基本类型 double 的 Class 实例。

Java学习视频

Java基础:

Java300集,Java必备优质视频_手把手图解学习Java,让学习成为一种享受

Java项目:

【Java游戏项目】1小时教你用Java语言做经典扫雷游戏_手把手教你开发游戏

【Java毕业设计】OA办公系统项目实战_OA员工管理系统项目_java开发

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法 【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法:①检查PyCharm导入的环境是否错误②添加Torch包 阅读详情

相关推荐

QuickFix Java 讲解(五)消息的收发与查看

本系列力求手把手教你怎样利用QuickFix Java 搭建自己的 FIX 协议收发平台,以及其中的注意事项。 所有源码的地址(免费): https://github.com/zongzhec/QuickFixPractise 这节我们讨论将Acceptor和Initiator启动以后,收到的消息极其查看方式。 6. 收发双方的通信 6.1. 启动后的通信和登录 为方便起见,这里我们使用统一的源码:https://github.com/zongzhec/QuickFixPractise ..

2247

Java中关于double、Double相关问题总结

Java中Double问题详解

忆往昔的博客 2万+

OpenCLI入门:让任何网站变成你的命令行工具(超详细版)

最有用的工具,往往是最简单的。 opencli就是这样。 它不会帮你写代码,不会帮你做决策,但它能把200+个平台装进你的命令行。 让你用最简单的方式,获取最丰富的数据。

weixin_66295112的博客 2094

java double 类型_关于Java中的double类型数据

在初学Java的时候,一般我们都会从基本的数据类型开始学习,而在基本数据类型中,我认为double类型是比较难理解的,并且在以后的学习或工作中,在double类型数据这遇到的坑也是极多的。例如下面的这样一个程序publicstaticvoidmain(String[]args){System.out.println(2.0-1.1);}很多人会认为上面的程序会打印出0.9,但实际上,它打...

weixin_35125597的博客 1万+

libnice和coturn这两个库有交叉实现的地方,具体有啥区别?

TurnAdmin:是一个TURN的管理工具,此工具能被用来管理用户账号的增删改查。 TurnServer:是TURN和STUN的服务器实现。 Turnutils_uclient: 模拟多个UDP、TCP、TLS或DTLS客户端 Turnutils_peer: 一个简单的无状态UDP-ECHO服务器,用作中继模式中的最终服务器 Turnutils_stunclient: 一个简单的STUN客户端例子 Turnutils_rfc5769check: 检查STUN/TURN协议实现的正确性。 我们..

Langeldep的专栏 1320

CarPlay无线连接背后的‘握手’秘密:深入解读iAP2协议与蓝牙/Wi-Fi协同

本文深入解析了CarPlay无线连接背后的技术细节,重点探讨了iAP2协议与蓝牙/Wi-Fi的协同工作原理。从蓝牙层的UUID识别到iAP2协议的握手过程,再到Wi-Fi热点的建立与优化,详细揭示了CarPlay无线连接的安全机制和调试方法,为开发者提供了实用的技术参考。

weixin_42520573的博客 475

Java常用类之Double类

Double浮点型类 Double类对应基本类型double Double类中的常量 代码如下: /** * */ package CommonClasses; /** * @Description Double类中常量 * @author 枳洛淮南 * @version 1.0 * @Date 2020年10月2日下午9:44:28 */ public class DoubleConstant { public stat

weixin_43520256的博客 1680

UM982模组在无人机精准农业中的实战应用:如何配置双天线RTK实现厘米级定位

本文深入解析了UM982双天线RTK模组在农业无人机中的实战应用。通过详细阐述其硬件集成、软件配置及抗干扰调试全流程,重点说明了如何利用双天线设计直接获取高精度航向,并结合BDS等多系统GNSS信号,实现农田复杂环境下的厘米级稳定定位,从而提升变量施肥、自动巡田等精准农业作业的效率与质量。

weixin_29304021的博客 507

【Java】JDK源码分析——Double

一.概述Double是double的包装类,用于表示双精度浮点数。Double的表示方法和int、short、long不同。Double满足IEEE754浮点数表示法。Double表示的数值占8个字节,共64位。其中0到51位表示尾数部分;52到63位表示指数部分;64位为符号位。**1.Double被final修饰,不能被继承。2.继承了,可以实现数值间的转换。3.实现了Comparable接口,可以进行Double类型对象之间的比较。**二.源码分析1.全局变量2.构造方法。

2401_84003554的博客 1546

数仓建模—数据语义层

如今,企业产生大量数据,需要以正确的方式进行分析才能做出重要决策。数据可能来自多个来源并采用不同的格式,这使得清楚地了解其含义和重要性成为一项挑战。这就是语义层的用武之地。语义层存在于数据仓库和最终用户使用的应用程序之间。它为用户提供了简化且一致的数据视图,无论其基础数据源的复杂性如何。该逻辑层有助于映射物理数据结构以创建概念数据模型。它定义了数据元素之间的所有规则和关系,并以业务术语提供了数据的通用词汇表。然后,用户可以轻松地与数据进行交互,而无需了解其数据源的技术知识。

7万+

解决Jupyter Notebook中Plotly图表显示问题

摘要:在Jupyter Notebook中使用Plotly绘图时遇到图表无法显示的问题。通过分析发现Python 3.12版本与Jupyter存在兼容性问题。解决方案是将Python降级到3.11版本,重新创建虚拟环境后图表正常显示。这表明版本兼容性对数据可视化工具至关重要,环境配置检查是解决问题的关键步骤。该案例为遇到类似问题的开发者提供了参考方案。

m0_74337424的博客 125

Java double数据类型

double数据类型使用64位来存储浮点数。double值也称为双精度浮点数。它可以表示一个最小为4.9 x 10^-324,最大为的数字。它可以是正的或负的。所有实数被称为double字面量。double字面量可以可选地以d或D结尾,例如1.27d。后缀d或D在double字面量中是可选的。19.7和19.7d代表相同的double字面量。

unber的博客 1784

物联网应用开发教程专栏介绍与说明——列表目录查阅(持续更新)

为方便查阅学习本专栏,特整理专栏介绍与说明及提供列表目录便于查阅。阿齐Archie《物联网应用开发教程》专栏。本专栏为物联网应用开发教程,将更新涵盖常见的WIFI、蓝牙、蜂窝网、以太网、Lora、NB-iot等物联网技术实战应用及详解其技术知识。专栏为技术文章,订阅一个文章即可本专栏内所有文章可看,实战开发,亲测无误,附视频演示效果,会持续更新本专栏。本专栏内有理论篇也有完整实战应用篇。

嵌入式阿齐Archie 2万+

double和Double区别

double和Double区别 double是基本数据类型,Double是原始数据类型 double没有方法,Double有自己的属性和方法 double只创建引用,Double创建对象 集合类不能存放double,只能存放Double double存放在栈中,Double存放在堆中 栈的存取速度要高于堆,另外栈中的数据可以共享 如: double a = 0; double b = 0; 不会创建对象,只会建立两个引用,同时指向变量“0”(栈数据共享) 而 Double a = new Double(0)

qq_43755751的博客 1739

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java Double compareTo()方法具有什么功能呢?

Java Double compareTo()方法的功能简介说明

qq_25073223的博客 2269

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java Double intValue()方法具有什么功能呢?

Java Double intValue()方法的功能简介说明

qq_25073223的博客 327

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java中double类型_Java中的Double类型计算

1 package com.wetalk.wbs.bas.util;23 import java.io.Serializable;4 import java.math.BigDecimal;5 import java.math.RoundingMode;67 /**8 * double的计算不精确,会有类似0.0000000000000002的误差,正确的方法是使用BigDecimal或者用整型...

weixin_29720641的博客 2726

java强制double int

Java 强制类型转换:将 double 转换为 int 在 Java 中,类型转换是将一种数据类型转换为另一种数据类型的过程。当我们需要将一个 double 类型的数据转换为 int 类型时,通常称之为强制类型转换。强制类型转换的基本流程如下: 流程概述 下面是实现 Java 强制转换的步骤: 步骤 描述 ...

weixin_36867323的博客 184

十二、JAVA中的包装类

JAVA中的包装类1. 与基本类型的对应关系2. Number3. Integer4. Double 1. 与基本类型的对应关系 2. Number 1.数字包装类的抽象父类。 2.是所有数字类型。 包装类的父类,被修饰成了抽象类,不能new 提供的共性方法。 3.是可以把包装类型转回成基本类型。 子类: 常用的方法: 提供了各种获取值的方式,已经完成了强转。 abstract byte byteValue() 以 byte 形式返回指定的数值。 abst

丁花的博客 292

java double相加_Java 学习笔记---Java double类型相加问题

多个double类型的数直接相加的时候,可能存在精度误差.( 由于计算机算法以及硬件环境决定只能识别 0 1。计算机默认的计算结果在都在一个指定精度范围之内,想往深的了解,可以学习数值分析等) 在金融方面是绝对不允许的,好在java开发者有这个先见之明。 java.math.*里面提供了BigDecimal类(提供高精度计算的方法)这个时候就要采用BigDecimal函数进行运算第一步、建立Str...

weixin_36180471的博客 737

包装类的使用

包装类 包装类的概念 通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装类。 如: Person p = new Person(); int num = 10; 包装类的分类 包装类 对应的基本类型 java.lang.Byte byte java.lang.Short short java.lang.Integer int java.lang.Lon

~忆缘的博客 194

java包装类的概念及常用方法详解

包装类(熟悉) 包装类的概念 ​ 通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变 量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装 类。 Person p = new Person(); // 对象 int num = 10; // 非对象 包装类的分类 包装类 对应的基本类型 java.lang.Byte byte java.lang.Short short java.lang.Integer

Junsunnyl的博客 530

JAVA中Double保留后几位小数位的做法

JAVA中Double保留后几位小数位的做法

qq_40129896的博客 283

Java学习笔记(25)——基本类型的包装类

这里将自己学习java及其应用的一些笔记、积累分享一下,如果涉及到了文章、文字侵权,请联系我删除或调整。 一、基本类型的包装类 1.1 概述 用来封装一个基本类型值 有时需要把基本类型值,当做引用类型来使用 ​​​​​​​ 1.2 Number类 数字包装类的抽象父类 子类 Byte,Short,Integer,Long Float,Double BigDecimal,BigInteger 取值方法 byteValue() shortValue() intValue(

AlieNeny的博客 186

【Java SE】包装类 Byte、Short、Integer、Long、Character、Float、Double、Boolean

基本数据类型不是对象,不能使用类的方法;因此,Java针对基本类型提供了它们对应的包装类,八大基本数据类型,对应了八种包装类,以对象的形式来调用。包装类有了类的特点,使得可以调用包装类中的方法八大包装类位于java.lang包下,如下图所示:​除了Integer和Character这两个包装类外,其他六个包装类的类名均是对应的基本类型首字母大写后得到的基本类型 ——> 包装类型(或者叫对象类型,引用类型)包装类型 ——> 基本类型。

m0_55908255的博客 1644

Java中double数值保留两位小数的四种实现方式

【代码】Java中double数值保留两位小数的四种实现方式。

番茄Salad 2411
上一篇: 大厂必问的Java虚拟机面试题有哪些?(三)
下一篇: Java框架,SSM增删改查的流程
程序媛_小白
博客等级 码龄5年 322粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值