首页 > 其他分享 >DecimalFormat的基本用法

DecimalFormat的基本用法

时间:2023-11-01 11:14:10浏览次数:36  
标签:基本 舍入 format df RoundingMode new 用法 DecimalFormat

一、舍入模式RoundingMode

1、舍入模式RoundingMode为截断Down

public static void main(String[] args) {
        double num = 11.256;
        DecimalFormat df = new DecimalFormat("#.##"); // 格式化为两位小数
        //指定RoundingMode舍入模式
        df.setRoundingMode(RoundingMode.DOWN); // RoundingMode.DOWN表示去掉一位,即截断
        String str = df.format(num);
        System.out.println(str); //11.25
        double formatNum = Double.parseDouble(str);
        System.out.println(formatNum); // 11/25
    }

2、舍入模式RoundingMode为四舍五入HALF_UP

public static void main(String[] args) {
        double num = 11.256;
        DecimalFormat df = new DecimalFormat("#.##"); // 格式化为两位小数
        //指定RoundingMode舍入模式
        df.setRoundingMode(RoundingMode.HALF_UP); // 四舍五入
        String str = df.format(num);
        System.out.println(str); // 11.26
        double formatNum = Double.parseDouble(str);
        System.out.println(formatNum); // 11.26
    }

3、舍入模式RoundingMode为“始终对非零舍弃部分前面的数字加1” UP

public static void main(String[] args) {
        double num = 11.254;
        DecimalFormat df = new DecimalFormat("#.##"); // 格式化为两位小数
        //指定RoundingMode舍入模式
        df.setRoundingMode(RoundingMode.UP); // 始终对非零舍弃部分前面的数字加 1
        String str = df.format(num);
        System.out.println(str); // 11.26
        double formatNum = Double.parseDouble(str);
        System.out.println(formatNum); // 11.26
    }

4、HALF_EVEN -----DecimalFormat默认的RoundingMode为RoundingMode.HALF_EVEN,也称为“银行家舍入法”,主要在美国使用。四舍六入,五分向相邻的偶数舍入。
以下例子为保留小数点1位,那么这种舍入方式下的结果。

1.15–>1.2 1.25–>1.2

5、HALF_DOWN — 五舍六入

2.5 —> 2
2.6 —> 3

二、占位符

1、0表示数字占位符,实际位数不够时补零
比实际数字的位数多,不足的地方用0补上

new DecimalFormat(“00.00”).format(3.14) //结果:03.14
new DecimalFormat(“0.000”).format(3.14) //结果: 3.140
new DecimalFormat(“00.000”).format(3.14) //结果:03.140

整数部分比实际数字的位数少,整数部分不改动。小数部分比实际数字的位数少,根据小数部分占位符数量保留小数。

new DecimalFormat(“0.000”).format(13.146) //结果:13.146
new DecimalFormat(“00.00”).format(13.146) //结果:13.15
new DecimalFormat(“0.00”).format(13.146) //结果:13.15

2、#表示数字占位符,实际位数不够时不补零

比实际数字的位数多,不变

new DecimalFormat("##.##").format(3.14) //结果:3.14
new DecimalFormat("#.###").format(3.14) //结果: 3.14
new DecimalFormat("##.###").format(3.14) //结果:3.14

整数部分比实际数字的位数少,整数部分不改动。小数部分比实际数字的位数少,根据小数部分占位符数量保留小数。

new DecimalFormat("#.###").format(13.146) //结果:13.146
new DecimalFormat("##.##").format(13.146) //结果:13.15
new DecimalFormat("#.##").format(13.146) //结果:13.15

 

标签:基本,舍入,format,df,RoundingMode,new,用法,DecimalFormat
From: https://www.cnblogs.com/zwh0910/p/17802559.html

相关文章

  • Kafka基本原理、生产问题总结及性能优化实践
    Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、Storm/Spark流式处理引擎,web/nginx日志、访问......
  • java 基本数据类型和引用数据类型
    ......
  • Markdown使用心得(简单用法解析)
    Markdown使用心得(简单用法解析)Markdown的优势个人看来,MD的优势在于脱离对鼠标的依赖,在简单的熟悉后,从段落格式到字体特效的实现都可以完全脱离鼠标。避免了为了格式和艺术效果多次将右手在键盘和鼠标来回移动,打破码字的纯净体验,避免频繁的中断思路。简单的用法归纳接下来,我将......
  • Lab3:数据处理基本方法及创新应用(基础)
    ++x是先进行x=x+1,再返回x;x++是先返回x,再进行x++55/7=7,因为是整型运算;55/7.0=7.85714286,因为是浮点型运算'b'<'a'返回值为1;x>y返回值在x>y时为1,x<=y为0x>0时返回x,否则返回-1x<<2==x*48=1000,9=1001,z=8&9=1000=866&&88返回值为1,是逻辑与;6......
  • oracle数据库表的一些基本处理
    oracle数据库的简单使用语法用户的数据实际上是存在数据库的表中,所以当我们要向数据库中存放数据时,必须先创建表。/*创建语法createtable[<模式名>.]<表名>(<字段1><类型>[约束条件],<字段2><类型>[约束条件],…)[tablespace<命名空间>];*/–创建一个班级信息表......
  • IDEA基本操作
    IDEA基本操作1IDEA常用快捷键快速生成main方法和输出语句main方法:main或者psvm,回车输出语句:sout,回车常用快捷键Ctrl+D:复制数据到下一行Ctrl+X:剪切数据,可以用来删除所在行Ctrl+Alt+L:格式化代码,建议自己写代码的时候就注意格式Ctrl+/:对选中的代码添加单行注释,如果想取消注......
  • tp6 redirect用法
    一.响应操作1.响应输出,有好几种:包括return、json()和view()等等;2.默认输出方式是以html格式输出,如果你发起json请求,则输出json;3.而背后是response对象,可以用response()输出达到相同的效果;returnresponse($data);4.使用response()方法可以设置第二参数,状态码,或调......
  • bitset用法
    1、简介bitset在bitset头文件中,它类似数组,并且每一个元素只能是0或1,每个元素只用1bit空间。//头文件#include<bitset>2、初始化定义初始化方法代码含义bitsetaa有n位,每位都为0bitseta(b)a是unsignedlong型u的一个副本bitseta(s)a是string对象s中含有......
  • 【面试题】你理解中JS难理解的基本概念是什么?
    作用域与闭包作用域作用域是当前的执行上下文,值和表达式在其中“可见”或可被访问。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。作用域也可以堆叠成层次结构,子作用域可以访问父作用域,反过来则不行。————MDN作用域最重要的特点是:子作用域可以访问父作用域,反之则......
  • SQL server 中Merge Into的用法
    从备份表中更新字段到正式表中,使用UPDATE批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用MERGEINTO代替UPDATE执行批量更新,会提升执行效率。MERGEINTO语法如下:  MERGEINTOtable_namealias1 USING(table|view|sub_query)alias......