• DecimalFormat的使用讲解数字格式化和demo(java小数控制,金额返回相关处理)


    在开发中经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子。下面是一个例子:
    DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。
    0 表示如果位数不足则以 0 填充 # 表示只要有可能就把数字拉上这个位置。上面的例子包含了差不多所有的基本用法.

    “#” 表示数字,如果不存在则显示为空;
    “0” 表示数字,如果不存在则显示为0;
    “.”小数分割符或货币小数分隔符。
    “%”前缀或后缀显示为百分数

    阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数(123.4),科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以

    public static void main(String[] args) {
            double pi = 3.1415927;//圆周率
            //取一位整数
            //取一位整数
            System.out.println(new DecimalFormat("0").format(pi));//3
    //取一位整数和两位小数
            System.out.println(new DecimalFormat("0.00").format(pi));//3.14
    //取两位整数和三位小数,整数不足部分以0填补。
            System.out.println(new DecimalFormat("00.000").format(pi));// 03.142
    //取所有整数部分
            System.out.println(new DecimalFormat("#").format(pi));//3
    //以百分比方式计数,并取两位小数
            System.out.println(new DecimalFormat("#.##%").format(pi));//314.16%
            System.out.println("--------------------------------------------------------------");
            long c = 299792458;//光速
    //显示为科学计数法,并取五位小数
            System.out.println(new DecimalFormat("#.#####E0").format(c));//2.99792E8
    //显示为两位整数的科学计数法,并取四位小数
            System.out.println(new DecimalFormat("00.####E0").format(c));//29.9792E7
    //每三位以逗号进行分隔。
            System.out.println(new DecimalFormat(",###").format(c));//299,792,458
    //将格式嵌入文本
            System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c));
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
      public static void main(String[] args) {
            double b;
            b=100.45;
            //保留一位小数,四舍五入
            System.out.println(new DecimalFormat("0.0").format(b));  //100.5
            //保留一位小数,四射无入
            System.out.println(new DecimalFormat("#.#").format(b));  //100.5
            b=11.0023;
            //保留两位小数,四舍五入
            System.out.println(new DecimalFormat("0.00").format(b));  //11.00
            //保留两位小数,四射五入,但当末尾位0时,自动忽略
            System.out.println(new DecimalFormat("#.##").format(b));  //11
            b=20000.23456;
            //格式化分隔数字
            System.out.println(new DecimalFormat("#,##,###.####").format(b)); //20,000.2346
            b=0.23365;
            //按百分制输出,保留两位小数
            System.out.println(new DecimalFormat("#.##%").format(b)); //23.36%
            b=0.23366;
            System.out.println(new DecimalFormat("#.##%").format(b)); //23.37%
            b=123.455;
            //将所有数字加上负号输出,保留两位小数
            System.out.println(new DecimalFormat("-#.##").format(b)); //-123.45
            b=-123.456;
            System.out.println(new DecimalFormat("-#.##").format(b)); //--123.46
            b=0.00235;
            //按科学计数法输出,保留两位小数
            System.out.println(new DecimalFormat("#.##E0").format(b)); //2.35E-3
            b=0.00236;
            System.out.println(new DecimalFormat("#.##E0").format(b)); //2.36E-3
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    扩展:
    DEMO:

    描述
    设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型

    输入描述:
    随机double类型变量
    输出描述:
    转化后的int类型变量

    package com.example.类型转换;
    
    import java.text.DecimalFormat;
    import java.util.Scanner;
    
    public class java_test {
    
        //java 类型转换
        // 设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
        public static void main(String[] args) {
    
            System.out.println("请输入double类型的小数");
            Scanner scanner = new Scanner(System.in);
            double d = scanner.nextDouble();
            System.out.println(java_test.typeConversion(d));
            
            
    
        }
    
        // 三种方式
        private static int typeConversion(double d) {
            DecimalFormat df = new DecimalFormat("#");//几个符合几位 . 小数点的位置 四舍五入
            int s = Integer.parseInt(df.format(d));
    
            System.out.println("math的返回之是"+Math.round(d));//四舍五入
             return  s;
    
            //  return (int) d;//强制返回int
    
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
  • 相关阅读:
    【LeetCode】232.用栈实现队列
    【JavaSE】类和对象解析
    java设计模式---责任链模式详解
    苹果电容笔和apple pencil区别是什么?值得入手的电容笔品牌排行榜
    [附源码]java毕业设计班级班费缴纳及使用情况管理
    MySQL FLOAT、DOUBLE、DECIMAL(小数类型)
    001:Kali Linux渗透测试介绍
    git 撤销与删除
    docker搭建mysql环境
    坚鹏:湖北银行数字化转型背景下银行运营管理创新培训圆满结束
  • 原文地址:https://blog.csdn.net/qq_42055933/article/details/125435639