BigDecimal类型一定不会失真吗?不一定。参数类型为double的构造方法的结果有一定的不可预知性,是有可能产生失真的。
BigDecimal类型一定不会失真吗?
不一定。
参数类型为double
的构造方法的结果有一定的不可预知性,是有可能产生失真的。
public class Test1 {public static void main(String[] args) {BigDecimal b1 = new BigDecimal(123.24);System.out.println(b1);BigDecimal bstr = new BigDecimal("123.24");System.out.println(bstr);BigDecimal bint = new BigDecimal(123);System.out.println(bint);BigDecimal b2 = BigDecimal.valueOf(123.24);System.out.println(b2);}
}
在需要精确的表示两位小数时我们需要把他们转换为BigDecimal对象,然后再进行运算。
另外需要注意
使用BigDecimal(double val)构造函数时仍会存在精度丢失问题,建议使用BigDecimal(String val)
这就需要先把double转换为字符串然后在作为BigDecimal(String val)构造函数的参数。转换为BigDecimal对象
之后再进行加减乘除操作,这样精度就不会出现问题了。这也是为什么有关金钱数据存储都使用BigDecimal
BigDecimal类型一定不会失真吗?不一定。参数类型为double的构造方法的结果有一定的不可预知性,是有可能产生失真的。相关推荐
- php7 参数类型限定,PHP 7.2新特性:参数类型声明(附代码)
php7.2版本具有新特性,功能和改进,可以让我们编写更好的代码,下面的文章中我将介绍php7.2中的一个新的功能:参数类型声明,话不多说,让我们来具体看看正文内容. 参数类型声明 从PHP 5开始, ...
- Python 函数参数有冒号 声明后有- 箭头 返回值注释 参数类型注释
在python3.7 环境下 函数声明时能在参数后加冒号,如图: 1 def f(ham: str, eggs: str = 'eggs') -> str : 2 print("Ann ...
- 【EventBus】事件通信框架 ( 取消注册 | 获取事件参数类型 | 根据事件类型获取订阅者 | 移除相关订阅者 )
文章目录 一.取消注册订阅者 二.完整代码示例 一.取消注册订阅者 取消注册操作 : 从 Map<Object, List<Class<?>>> typesBySu ...
- 深度解析Java可变参数类型以及与数组的区别
这篇文章主要介绍了Java方法的可变参数类型,通过实例对Java中的可变参数类型进行了较为深入的分析,需要的朋友可以参考下. Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用.本文 ...
- 对Python参数类型详解以及学习中遇到的坑
由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析. 参数类型 首先我们列举一下有关于Python的参数类型,以及实际上的 ...
- java参数传入泛型类型_Java 5.0 泛型之 使用泛型统一传入的参数类型
Java 5.0 泛型之 使用泛型统一传入的参数类型 package Demo; // 使用泛型统一传入的参数类型 class Info28 { private T var; // 此类型由外部决定 ...
- python冒号声明类型_Python 函数参数有冒号 声明后有- 箭头 返回值注释 参数类型注释...
在python3.7 环境下 函数声明时能在参数后加冒号,如图: 1 def f(ham: str, eggs: str = 'eggs') -> str : 2 print("Ann ...
- #{}不自动改参数类型_Spring参数的自解析还在自己转换?你out了!
背景前段时间开发一个接口,因为调用我接口的同事脾气特别好,我也就不客气,我就直接把源代码发给他当接口定义了. 没想到同事看到我的代码问:要么 get a,b,c 要么 post [a,b,c]. ...
- Go 学习笔记(28)— nil(nil 不能比较、不是关键字或保留字、nil 没有默认类型、不同类型的 nil 指针是一样的、不同类型的 nil 是不能比较的、相同类型的 nil 可能也无法比较)
在 Go 语言中,布尔类型的零值(初始值)为 false ,数值类型的零值为 0,字符串类型的零值为空字符串 "",而指针.切片.映射.通道.函数和接口的零值则是 nil . ni ...
最新文章
- 高速学会Mac上托管代码到github(具体解释)
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨寻找用户推荐人【难度简单】
- 2021 使用IDEA创建并编写你的第一个Maven项目【图文详解】
- pptx模块的图片框
- raspberry pi_Raspberry Pi项目旨在调节室温并改善睡眠
- Oracle树反向查询的优化(转载)
- 进程间通信---共享内存 ftok shmat shmget shmdt shmctl
- T-SQL笔记1:SELECT及SELECT高级应用
- camunda 流程执行追踪_从Activiti分裂而来的camunda BPM
- oracle报错ORA-01843: not a valid month
- 【JavaSE】黑马程序员 刘意 基础部分笔记
- 汇编语言指令系统——控制转移类指令
- 小度wifi当无线网卡
- 计算机微信开发中期检查表,中期检查表范例
- glsl 抗锯齿锯齿_什么是抗锯齿?
- u盘推荐知乎_u盘知乎恢复
- android 虚拟按键挡住布局,Android 虚拟按键遮住了页面内容解决办法
- 黑莓硌手的Passport变圆了
- 身份证识别-全方位突破,高精度,轻量级!
- 什么是MES生产管理和生产制造执行系统?有哪些系统模块组成?
热门文章
- Jass 技能模型定义(转)
- Unity Mono
- Windows 7/Vista 桌面上为何有两个隐含的 Desktop.INI
- HALCON示例程序sequence_diff.hdev通过两张连续图像进行车辆流量监控
- (转)windows下安装python及第三方库numpy、scipy、matplotlib终极版
- git 简单操作流程图
- pandas合并groupby_pandas实践之GroupBy()
- pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)
- 人工操作阶段计算机是如何工作的,管理信息系统作业参考答案
- 数据导出生成word附件使用POI的XWPFTemplate对象