BigDecimal最基础用法

用字符串生成的BigDecimal是不会丢精度的.

  • 简单除法.
public class DemoBigDecimal {

    public static void main(String[] args) {
String value = "1235";
if( !value.isEmpty() ){
BigDecimal bd = new BigDecimal(value);
bd = bd.divide(new BigDecimal(1000),3,RoundingMode.HALF_UP);//精确到小数点后3位,且用四舍五入
value = bd.toString();
System.out.println(value);
}
}
}

NumberFormat另一种设精度方法?

if(value instanceof Number) {//浮点数精度进行兼容
java.text.NumberFormat nf = java.text.NumberFormat.getInstance();
nf.setGroupingUsed(false);
nf.setMaximumIntegerDigits(30);
nf.setMaximumFractionDigits(8);
//nf.setMinimumFractionDigits(2);
BeanTool.setAttributeByString(bean, entry.getKey(), nf.format(value));
continue;
}

DecimalFormat保留小数位数

保留小数:java DecimalFormat format 方法的使用

public class test {
public static void main(String[] args) {
String ret = getConvertData(01.0003);
System.out.println(ret);
} public static String getConvertData(Double data){
String ret = "";
java.text.DecimalFormat df = new java.text.DecimalFormat("0.00");
ret = df.format(data);
return ret;
} }

BigDecimal比较大小

【重点】在进行比较后时一定要让原始构造函数的参数保持一致, 不然极有可能得不到预期结果,见下例

import java.math.BigDecimal;

public class TempTest {
public static void main(String[] args) throws Exception {
BigDecimal bd1 = new BigDecimal("1.23");
BigDecimal bd2 = new BigDecimal("1.230");
BigDecimal bd3 = new BigDecimal(1.23);
BigDecimal bd4 = new BigDecimal(1.230);
//compareTo()返回的结果是int类型,-1表示小于,0是等于,1是大于。
System.out.println(bd1.compareTo(bd2));//"1.23"和"1.230"相等,打印0
System.out.println(bd3.compareTo(bd4));//1.23和1.230相等,打印0
//【重点】在进行比较后时一定要让原始构造函数的参数保持一致, 不然极有可能得不到预期结果,见下例
System.out.println(bd1.compareTo(bd3));//根据结果"1.23"和1.23,前者更大,一定要避开这种类型不匹配的比较. BigDecimal bd5 = new BigDecimal(2);
System.out.println(bd4.compareTo(bd5));//1.230比2小,打印-1
System.out.println(bd5.compareTo(bd4));//2比1.230大,打印1
}
}

参考

BigDecimal加减乘除计算以及比较大小==>https://www.cnblogs.com/whatlonelytear/p/5138989.html

BigDecimal最基础用法的更多相关文章

  1. BigDecimal最基础用法【转】

    BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...

  2. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  3. logstash安装与基础用法

    若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...

  4. elasticsearch安装与基础用法

    来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...

  5. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  6. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  7. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

  8. Bootstrap fileinput:文件上传插件的基础用法

    官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...

  9. asyncio 基础用法

    asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...

随机推荐

  1. squid常用调试命令

    解压,编译,make ,make install 就不说了.从 make install 后开始.当你的 squid.conf 配置文档按照你的想法修改完以后,启动 squid 之旅就开始了.1,初始 ...

  2. CSS之利用text-indent隐藏文字用图片当Login

    html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  3. .NET微信自定义分享标题、缩略图、超链接及描述的设置方法

    前端Js引用: <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> ...

  4. SQL2005:SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法

    SQL2005 还原数据库失败,提示如下: SQL Server 2005还原数据库时出现“不能选择文件或文件组XXX_log用于此操作的解决办法 出现错误时操作步骤为:右击数据库--->任务- ...

  5. php include require

    includ和require都是把其他页面加载当前页面,不过不同的是,require如果没有找到,或者所包含的页面里面有错误就不会往下执行了 <?php include 'form.php'; ...

  6. EF 示例

    EF有三种数据库访问方式,这里只介绍Code First. 1.DB First,类似Linq to sql中拖拽一个DB到方案中 2.Model First,没试过,不能自动生成数据库只能生成表 3 ...

  7. [DFNews] What's coming in EnCase 7.08?

    论版本变化速度,AD绝对首屈一指,从FTK 4到现在的FTK 5也不过两年多时间,EnCase近期(初步预计8月初)将推出V7的新版本7.08,下面是一些新功能: Evidence Processor ...

  8. my first article

    BLOG:  http://codetask.org GIT:  http://git.oschina.net/codetimer

  9. AX 2012 SSRS print setting-报表打印输出设置

    static void callerreport_printsetting(Args _args) { LedgerJournalController controller = new LedgerJ ...

  10. 69. Letter Combinations of a Phone Number

    Letter Combinations of a Phone Number Given a digit string, return all possible letter combinations ...