关于BigDecimal转String的准确性问题
case 1:
String str=new BigDecimal(123.9).toString()
输出str:123.900000000000005684341886080801486968994140625
case2:
//数据库中该字段类型为decimal(20, 2),值为200.10
BigDecimal num = testMapper.query();
//值为200.1
String str = testDTO.getNum();
//比较BigDecimal与String:
if (num != null) {
boolean ifEquals = num.toString.equals(str);
}
结果为:false
总结:比较两个BigDecimal要通过BigDecimal的compareTo()方法。
关于BigDecimal转String的准确性问题的更多相关文章
- BigDecimal的String类型
java本身对浮点型的计算会丢失精度,这个一定要注意,必须要用BigDecimal的String类型才能解决精度的问题. BigDecimal一共有四个构造方法: 我们在计算商品价格的时候,一定要用B ...
- java中的BigDecimal和String的相互转换
/*由数字字符串构造BigDecimal的方法 02.*设置BigDecimal的小数位数的方法 03.*/ 04.import java.math.BigDecimal; 05.//数字字符串 06 ...
- java中的BigDecimal和String的相互转换,int和String的类型转换,Integer类和String相互转换
一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.B ...
- BigDecimal转String
代码: public static void main(String[] args) { // 浮点数的打印 System.out.println(new BigDecimal("10000 ...
- string 与BigDecimal互转
小编知道在java中数据类型非常 的严格了,我们如果一个地方不小心就会导致应用出问题了,今天 小编就在string 转BigDecimal上碰到了一些问题,下面整理了几个例子大家一起来看看. 例子 ...
- 关于BigDecimal 和 double 类型保存金钱,以及精度问题,银行家舍入法
1. BigDecimal 类型数据 的创建,构造函数 有 public BigDecimal(BigInteger intVal, long val, int scale, int prec); p ...
- BigDecimal 类型数据的一些应用
1.比较大小 可以通过BigDecimal的compareTo方法来进行比较.返回的结果是int类型,-1表示小于,0是等于,1是大于. 例如: if(a.compareTo(b) == -1){ a ...
- Java使用BigDecimal精确计算的简单公式计算器
由于工作需要,写了一个使用BigDecimal运算的精确计算的计算器(然后发现其实比不用BigDecimal的并好不到哪里去) 只能做加减乘除 double类型的数字在千万级别的时候会转成科学计数法, ...
- BigDecimal在实际项目的应用及遇到的问题
我们都知道,java中对大小数,高精度的计算都会用到BigDecimal.但是在实际应用中,运用BigDecimal还是会遇到一些问题.下面说一下我在项目中怎么样BigDecimal和遇到的一些问题. ...
随机推荐
- Linux桌面环境配置
目录 更换软件源 中文输入法 firefox安装flash插件 编译安装Vim 关闭蓝牙开机自启 yakuake无法正常使用 在中文环境下将默认目录修改成英文 电脑换成了thinkpad x1c 20 ...
- 多测师讲解自动化测试 _RF连接数据库_高级讲师肖sir
RF连接数据库:1.Connect To Database(连接数据库)2.Table Must Exist(表必须存在)3.Check If Exists In Database(查询某条件是否存在 ...
- day05 Pyhton学习
1字典 字符串"" 列表[,] 元祖(,) 字典{:,} 集合{,} 2.增加 dic={} dic['name'] = '周润发' dic.setdefault() 如果dict ...
- 氵0x a
从今天开始记录这些东西,希望以后自己不出现在这上
- Linux系统快速搭建LAMP
LAMP是 Linux + Apache + MySQL + PHP 的环境要求,即web服务器. 1.前置条件: (1)搭建Linux系统(参考博客:https://www.cnblogs.com/ ...
- 第二十五章 ansible基础
一.Ansible概述 1.什么是Ansible Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复 ...
- printStackTrace()造成的并发瓶颈
一 背景 在一次活动前的压测中,发现一个服务(平响为250ms左右)存在并发瓶颈,单实例的QPS压力从20升高到40后服务就雪崩了(平响急剧升高). 通过<jstack -F>命令查看线程 ...
- Linux中创建自己的欢迎登陆界面
/etc 在Linux中相当于Windows的注册表 修改其中文件可以影响整个Linux系统 MOTD motd:message of the day /etc/motd /etc/motd文件作用是 ...
- centos下搭建Jenkins持续集成环境
1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装. 1 wget -O /etc/yum.repos.d/ ...
- SpringBoot整合原生OpenFegin的坑(非SpringCloud)
写在前面 最近,在使用SpringBoot+K8S开发微服务系统,既然使用了K8S,我就不想使用SpringCloud了.为啥,因为K8S本身的就提供了非常6的服务注册与发现.限流.熔断.负载均衡等等 ...