java保留小数的四种实现方法

本文实例针对java保留两位小数问题为大家进行解答,供大家参考,具体内容如下

方式一:

四舍五入

double  f  =  111231.5585;
BigDecimal  b  =  new  BigDecimal(f);
double  f1  =  b.setScale(2,  BigDecimal.ROUND_HALF_UP).doubleValue();

方式一这个类很好的解决了方式三所带来的问题。

保留两位小数

方式二:

DecimalFormat  df  =new DecimalFormat("#.00");
df.format(你要格式化的数字);

例:new DecimalFormat("#.00").format(3.1415926)

.00 表示两位小数 #.0000四位小数 以此类推...

注意:

我在是用上面这个类的时候出现了数据转换异常,原因是在String转换double的时候出现了逗号,导致转换错误。不少欧洲国家小数点是用逗号来表示的,3.14是在很多欧洲国家,如法国、荷兰等不是这么写的,而是3,14。在这些国家,我们所说的小数点是用逗号表示的。 而333,333,333的隔字符不是用逗号,而是用点来表示,即333.333.333。欧美国家这么多,每个国家的数字表达法并不是同一系统。

方式三:

double d = 3.1415926;
String result = String .format("%.2f");

%.2f %. 表示:小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型

方式四:

NumberFormat ddf1=NumberFormat.getNumberInstance() ;

void setMaximumFractionDigits(int digits)

digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的

具体解析:

//返回当前缺省语言环境的缺省数值格式。
 String myString = NumberFormat.getInstance().format(myNumber);
 System.out.println(myString);
 //getCurrencyInstance()返回当前缺省语言环境的通用格式
 myString = NumberFormat.getCurrencyInstance().format(myNumber);
 System.out.println(myString);
 //getNumberInstance() 返回当前缺省语言环境的通用数值格式。
 myString = NumberFormat.getNumberInstance().format(myNumber);
 System.out.println(myString);

 //getPercentInstance() 返回当前缺省语言环境的百分比格式。
 myString = NumberFormat.getPercentInstance().format(test);
 System.out.println(myString);

 //setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数
 //setMaximumIntegerDigits(int) 设置数值的整数部分允许的最大位数
 //setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数
 //setMinimumIntegerDigits(int) 设置数值的整数部分允许的最小位数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 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

  • java 保留两位小数的几种方法

    1.代码: 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)

  • java 四舍五入使java保留2位小数示例讲解

    复制代码 代码如下: /* * 测试四舍五入 */package com.icer.test; /** * * @author Hanbin */public class MyRound {    public static void main(String[] args) {        double num = 3.23562;        double number = 0;        number = new MyRound().myRound(num,2);        Sy

  • 使用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 digi

  • java使double保留两位小数的多方法 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指定保留小数位数的方法

    今天项目中需要更改时长的显示方式,规定必须保留两位小数,刚才看简书的时候正好看到一个指定保留小数位数的工具类的文章,在此基础上,做了一点小修改,用起来更加方便了,有需要的朋友尽管撸走 DecimalUtils 类: import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; /** * Created by Sean on 17/3/10. */ public class

  • Java保留两位小数的几种写法总结

    本文列举了几个方法: 1. 使用java.math.BigDecimal 2. 使用java.text.DecimalFormat 3. 使用java.text.NumberFormat 4. 使用java.util.Formatter 5. 使用String.format 文章末尾给大家分享了更多的拓展知识,另外可以自己实现或者借用封装好的类库来实现,在这篇文章中就不一一列举了. 下面来看看详细的介绍. 一.使用BigDecimal,保留小数点后两位 public static String

  • java保留小数的四种实现方法

    本文实例针对java保留两位小数问题为大家进行解答,供大家参考,具体内容如下 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 方式一这个类很好的解决了方式三所带来的问题. 保留两位小数 方式二: DecimalFormat df =new DecimalFormat("#.00

  • Java强制保留两位小数的四种方法案例详解

    方法一:String的format方法(推荐) double f = 111231.5585; System.out.println(String.format("%.2f", f)); 方法二:DecimalFormat的format方法 double f = 111231.5585; DecimalFormat df = new DecimalFormat("#.00"); System.out.println(df.format(f)); 以下内容了解即可,可

  • 浅谈Java中浮点型数据保留两位小数的四种方法

    目录 一.String类的方式 二.DecimalFormat类 三.BigDecimal类进行数据处理 四.NumberFormat类进行数据处理 总结一下 今天在进行开发的过程中遇到了一个小问题,是关于如何将double类型的数据保留两位小数.突然发现这方面有一点欠缺,就来总结一下. 一.String类的方式 该方式是是使用String的format()方法来实现的,该方法的作用就是规范数据的格式,第一个参数传入一个字符串来表示输出的数据格式,如保留两位小数就使用"%.2f",第二

  • java arrayList遍历的四种方法及Java中ArrayList类的用法

    java arrayList遍历的四种方法及Java中ArrayList类的用法 package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo { public static void main(String args[]){ List<String> list = new ArrayList<String

  • Java完全二叉树的创建与四种遍历方法分析

    本文实例讲述了Java完全二叉树的创建与四种遍历方法.分享给大家供大家参考,具体如下: 有如下的一颗完全二叉树: 先序遍历结果应该为:1  2  4  5  3  6  7 中序遍历结果应该为:4  2  5  1  6  3  7 后序遍历结果应该为:4  5  2  6  7  3  1 层序遍历结果应该为:1  2  3  4  5  6  7 二叉树的先序遍历.中序遍历.后序遍历其实都是一样的,都是执行递归操作. 我这记录一下层次遍历吧:层次遍历需要用到队列,先入队在出队,每次出队的元素

  • java数组复制的四种方法效率对比

    有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? A.for循环逐一复制 B.System.arraycopy C.System.copyof D.使用clone方法 效率:System.arraycopy>clone>Arrays.copyOf>for循环 1.System.arraycopy的用法: public static void

  • Java 多线程传值的四种方法

    其实大家都知道多线程传值有三种方式: 1:通过构造方法传递数据 2:通过变量和方法传递数据 3:通过回调函数传递数据 那么博主有个非常变态的需求,所以找出了第四种实现方式,先看效果图: 动态Cron4j调度器,我曾经发过类似的文章,可以去搜索一下. 点击执行走下边的代码,然后根据类名反编译 public static void executeCron4j(String packageClass){ try { Object taskObj = classNewInstance(packageCl

  • 详解Java停止线程的四种方法

    一.线程停止基础知识 interrupted(): 测试当前线程是否已经中断.该方法为静态方法,调用后会返回boolean值.不过调用之后会改变线程的状态,如果是中断状态调用的,调用之后会清除线程的中断状态. isInterrupted(): 测试线程是否已经中断.该方法由对象调用 interrupt(): 标记线程为中断状态,不过不会中断正在运行的线程. stop(): 暴力停止线程.已弃用. 二.停止线程方法1:异常法停止 线程调用interrupt()方法后,在线程的run方法中判断当前对

  • Java数据库连接池的几种配置方法(以MySQL数据库为例)

    一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1.方法一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,如下: <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/chaoshi" auth="

  • java 创建线程的四种方式

    1.继承Thread类方式 这种方式适用于执行特定任务,并且需要获取处理后的数据的场景. 举例:一个用于累加数组内数据的和的线程. public class AdditionThread extends Thread { private int sum = 0; private int[] nums; ​ public AdditionThread(int[] nums, String threadName) { super(threadName); this.nums = nums; } ​

随机推荐