java Double保留小数点位数

 

0和#都是占位符,但在不同的地方,作用不一样
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
#:
比实际数字的位数多,不变。
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 

 

4种方法,都是四舍五入,例:

    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    public class format {
        double f = 111231.5585;
        public void m1() {
            BigDecimal bg = new BigDecimal(f);
            double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println(f1);
        }
        /**
         * DecimalFormat转换最简便
         */
        public void m2() {
            DecimalFormat df = new DecimalFormat("#.00");
            System.out.println(df.format(f));
        }
        /**
         * String.format打印最简便
         */
        public void m3() {
            System.out.println(String.format("%.2f", f));
        }
        public void m4() {
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(2);
            System.out.println(nf.format(f));
        }
        public static void main(String[] args) {
            format f = new format();
            f.m1();
            f.m2();
            f.m3();
            f.m4();
        }
    }
//还有一种直接向上取整数
<H2 class="title content-title">//java:Java的取整函数</H2>    <DIV id=content class="content mod-cs-content text-content clearfix"> //Math.floor()、Math.ceil()、BigDecimal都是Java中的取整函数,但返回值却不一样

            Math.floor()
            通过该函数计算后的返回值是舍去小数点后的数值
            如:Math.floor(3.2)返回3
            Math.floor(3.9)返回3
            Math.floor(3.0)返回3

            Math.ceil()
            ceil函数只要小数点非0,将返回整数部分+1
            如:Math.ceil(3.2)返回4
            Math.ceil(3.9)返回4
            Math.ceil(3.0)返回3 </DIV>

 

时间: 2024-12-21 00:38:31

java Double保留小数点位数的相关文章

保留小数点位数-double保留小数点后两位的问题,跪求大神详解

问题描述 double保留小数点后两位的问题,跪求大神详解 图片下边为对应的后台代码. 图片中的合计怎么 小数点后边那么多位?求大神详解. private double heji1=0; private double heji2=0; private double heji3=0; private double heji4=0; public String get() throws Exception { this.init(); ruKu = dao.get(id); return SUCCE

使用java代码实现保留小数点的位数

因为个人应用的需要,所以就写个简单点的了.希望大家都给给建议,共同学习.需要的朋友也可以参考下   复制代码 代码如下: import java.text.* ; import java.math.* ; public class Test {  public Test(){  double a=saveNumber(15.12312312,6);  System.out.println("a....."+a);  }  //保留小数点的位数  //number为要处理的数,digit

使用java代码实现保留小数点的位数_java

复制代码 代码如下: import java.text.* ; import java.math.* ; public class Test{  public Test(){  double a=saveNumber(15.12312312,6); System.out.println("a....."+a); } //保留小数点的位数 //number为要处理的数,digit为要保留的位数 public double  saveNumber(double number,int dig

url地址解码、保留小数点后面两位数字

url地址解码类 package com.xd.intersys.actions; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; public class URLTransform {     public static void main(String[] args) {         String strTest = "q=%28%2B

匹配java double值的正则表达式

最近看到Java高手老紫竹写的<判断数字是否为double的正则表达式>,我近来也在学正则表达式的应用,所以来发挥发挥.这里用perl脚本写,因为它支持正则表达式比较好.让我们一步一步来解刨double浮点数: 普通的整数都是合法double型,带上后缀字母d或者D也是double型.比如: 1 +10 -100 100d 987D 因此用正则表达式: ^[-+]?/d[dD]$ 来匹配. double型的变量还能保存实数.比如: 1.0 +12.34 -45.896 -563.887d 甚至

格式化-java double 科学计数法 的转换

问题描述 java double 科学计数法 的转换 测试题. 要求0.00000000004 这个字符串格式化为 4.00e-11 这样的格式. 同excel表格中的展示一样. demo BigDecimal c = new BigDecimal("0.000000004", new MathContext(0, RoundingMode.HALF_UP));// 构造BigDecimal时指定有效精度 System.out.println(c..toEngineeringStrin

物料单位的小数点位数、取整位数

1.1.1 物料单位的小数点的定义 如下图所示,事务代码CUNI设置物料的单位以及小数点,在图标1.图标2处可设置小数点. 图标1处:代表显示的位数 图标2处:代表取整位数 如下图所示,设置单位PC 的小数点(decimal places)为0位,即不带小数点,设置小数点取整位数(decimal places rounding)为0,代表将进行取整. 在下文中,将以单位PC为例,演示相应的效果. 1.2 场景说明 下文中,将创建一个物料ZMRP014,设置物料的基本单位为PC,然后查看物料的小数

java使double保留两位小数的多方法 java保留两位小数_java

复制代码 代码如下: mport java.text.DecimalFormat;   DecimalFormat    df   = new DecimalFormat("######0.00");   double d1 = 3.23456  double d2 = 0.0;double d3 = 2.0;df.format(d1); df.format(d2); df.format(d3); 3个结果分别为: 复制代码 代码如下: 3.230.00 2.00 java保留两位小数

java 四舍五入保留小数的实现方法_java

// 方式一: double f = 3.1516; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); // 方式二: new java.text.DecimalFormat("#.00").format(3.1415926); // #.00 表示两位小数 #.0000四位小数 以此类推- // 方式三: double d = 3.1