-
2021-04-12 14:40:13
4种方法,都是四舍五入,例,保留4位小数:
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Format {
static double f = 111231.55856666666;
public static void m1() {
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/**
* DecimalFormat转换最简便
*/
public static void m2() {
DecimalFormat df = new DecimalFormat("#.0000");
System.out.println(df.format(f));
}
/**
* String.format打印最简便
*/
public static void m3() {
System.out.println(String.format("%.4f", f));
}
public static void m4() {
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(4);
System.out.println(nf.format(f));
}
public static void main(String[] args) {
Format.m1();
Format.m2();
Format.m3();
Format.m4();
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
更多相关内容 -
java保留小数的四种实现方法
2020-09-01 05:44:09主要为大家详细介绍了java保留小数的四种实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
Java保留小数的方法
2022-04-24 19:35:56Java保留2位小数文章目录
前言
在Java项目开发中,我遇到了对float或者double类型的数据进行运算之后保留小数位数的情况,初次遇到这个情况做个记录。
一、保留小数位数的需求
在做一个学生管理系统的项目的时候,遇到了计算加权成绩的需求,即需要根据学生所修的课程,以及课程的学分来计算学生的加权学业成绩,在浮点数计算过程中,产生了一长串小数,这显然不是我想存到数据库中的数据,因此需要保留一定位数,这里选择保留两位。
二、Java保留小数位数的方法
1.常用方法
这个问题很常见,也很容易解决,常用的方法有如下几种:
- BigDecimal
- DecimalFormat
- java.util.Formatter
- String.format
下面将分别介绍这四种方法
2.方法详解
2.1、BigDecimal
这种方法是先将double/float类型的数据转换为BigDecimal类型,然后再使用BigDecimal类的setScale方法,设置四舍五入以及保留的小数位数,具体代码如下:
@Test public void testDouble(){ double num = 3.555555f; BigDecimal bd = new BigDecimal(num); bd = bd.setScale(4, RoundingMode.HALF_UP); // .getClass()获得变量的类型 System.out.println(bd.getClass()); System.out.println(bd); // 上面转换之后的bd为BigDecimal类型的数据,如果想转换为double,需要使用下面的转换方式。 //.doubleValue将数字转换为double,Double.parseDouble()将字符串转换为double num = bd.doubleValue(); }
这里的两个打印的输出分别为:
class java.math.BigDecimal 3.5556
2.2、DecimalFormat
DecimalFormat是一种数据格式化方式,首先实例化一个数据格式化方式df,并且指定保留两位小数,然后指定四舍五入的规则,然后使用df.format()即可完成格式化,值得注意的是,df.format()之后得到的结果是String类型的数据。
@Test public void testDecimalFormat(){ double num = 3.555555f; DecimalFormat df = new DecimalFormat("0.00"); df.setRoundingMode(RoundingMode.HALF_UP); System.out.println(df.format(num).getClass()); System.out.println(df.format(num)); // Double.parseDouble将String类型的数据转换为Double类型 num = Double.parseDouble(df.format(num)); }
两处输出为:
class java.lang.String 3.56
2.3、java.util.Formatter
java.util.Formatter方法最为简单,首先实例化一个Formatter对象,指定格式化的类型和数据,然后获得一个Formatter对象,再将这个对象转换为String,再转换为Double就可以啦!
@Test public void testFormatter(){ Formatter format = new Formatter().format("%.2f", num); // String.valueOf()和.toString方法都能转换为String,不过String.valueOf()更常用 num = Double.parseDouble(String.valueOf(format)); }
2.4、String.format
这种方法也非常简单,使用String.format()方法将double类型的数据转换为String类型的数据,然后再根据需要变换即可。
@Test public void testStringFormat(){ String format = String.format("%.2f", num); System.out.println(format.getClass()); System.out.println(Double.parseDouble(format)); }
两处输出为:
class java.lang.String 3.56
总结
以上就是对Java保留几位小数方法的总结,一共四种方法:BigDecimal、DecimalFormat、java.util.Formatter和String.format,四种方法都很简单且都实现了四舍五入
-
Java保留小数位数两种简单方法
2022-04-03 11:35:32整理了两种简单实用保留小数位输出的方法1.使用String.format进行数据格式化
用该方法处理后变量转变为String类型,无法再对其进行基本的运算 。format()内容书写格式类似于c语言。
2.调用printf()处理格式化输出
Java中可以直接对System.out调用printf(),用法和c语言一模一样就不多赘述
-
java保留小数位后n位
2022-04-21 21:31:58方法一: public class test { public static void main(String[] args) { double d = 0.98649; String s=String.format...import java.text.DecimalFormat; public class test { public static void main(String方法一:
public class test { public static void main(String[] args) { double d = 0.98649; String s=String.format("%.3f",d); System.out.println(s); } }
进位符合四舍五入规则
方法二:
import java.text.DecimalFormat; public class test { public static void main(String[] args) { double d = 0.2153; DecimalFormat df = new DecimalFormat("0.000"); System.out.println(df.format(d)); } }
此代码保留三位小数,"0.000"表示小数点后三位,如果写成"0.00"则保留小数点后两位。进位符合四舍五入。
方法三:
public class test { public static void main(String[] args) { double x =5.1365; System.out.printf("%.2f\n",x); } }
运用类似C语言的printf输出。进位符合四舍五入。
-
java保留小数位,常用三种方法!!!
2020-10-08 12:31:21java保留小数位,常用三种方法!!!1.java.text.DecimalFormat2.String .format("%.2f",sum)3.BigDecimal 1.java.text.DecimalFormat java.text.DecimalFormat df =new java.text.DecimalFormat("#.00"); df.format(你... -
Java指定保留小数位数的方法
2020-08-31 03:21:01本篇文章主要介绍了Java指定保留小数位数的方法,很多时候需要规定保留的小数位数,这里整理了详细的代码,有需要的小伙伴可以参考下。 -
java怎么保留小数
2021-03-17 20:48:42java中保留小数示例:/*** 1.BigDecimal常用于金额的计算,* 超过16位使用*/public void m1() {BigDecimal bg = new BigDecimal(f);double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubl... -
Java 保留小数位的4种方法
2021-02-27 13:36:064种方法,都是四舍五入,例,保留4位小数,直接上代码importjava.math.BigDecimal;importjava.text.DecimalFormat;importjava.text.NumberFormat;publicclassFormat{staticdoublef=111231.55856666666;... -
java使double保留两位小数的多方法 java保留两位小数
2020-09-04 17:00:05主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 -
Java保留两位小数的几种写法总结
2020-09-01 03:17:46相信大家在平时做项目时,可能会有这样的业务... 那么这篇文章小编就和大家分享了利用Java保留两位小数的几种写法,文章给出了详细的示例代码,对大家的学习和理解很有帮助,有需要的朋友们下面来一起学习学习下吧。 -
Java 保留小数位时整数位0丢失问题
2017-09-22 11:22:26Java 保留小数位时整数位0丢失问题 Java 保留三位小数位 推荐写法: java.text.DecimalFormat df =new java.text.DecimalFormat("#.###"); df.format(0.123); 特别纠正网络部分回答的错误说法: 错误写法如下... -
java保留小数方法
2018-12-26 19:52:111.前言 在java的学习中,往往算法有一个是属于java的小数点位数保留...@see java保留小数点示例 */ import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class... -
java 四舍五入使java保留2位小数示例讲解
2020-09-04 20:41:36主要介绍了java四舍五入使java保留2位小数示例,大家参考使用 -
java 保留小数后N位小数
2017-05-06 10:58:45如代码所示:保留几位小数就在样本后面写几位0,保留时是根据四舍五入的保留的 double a = 0; double b = 1.2; double c = 1.23; double d = 1.234; double e = 1.235; double f = 1.23567; De -
java的几种保留小数位数的方法
2021-04-17 09:15:43java的几种保留小数位数的方法 法一:DecimalFormat public class DecimalFormatDemo { public static void main(String[] args) { double decimal=2.15545422; DecimalFormat df=new DecimalFormat("#.0000"); ... -
java、freemarker保留两位小数
2020-08-31 02:06:42主要介绍了 java、freemarker保留两位小数的实现方法,然后给大家补充介绍了freemarker保留两位小数的详解,需要的朋友可以参考下 -
java保留小数位数
2016-10-09 17:41:39这里面以2位小数举例 原文 http://mouselearnjava.iteye.com/blog/1961008 本文列举了几个方法: 1. 使用java.math.BigDecimal 2. 使用java.text.DecimalFormat 3. 使用java.text.NumberFormat 4... -
Java中Double除保留后小数位的几种方法(小结)
2020-08-25 20:45:08主要介绍了Java中Double保留后小数位的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Java除法运算(保留小数)
2022-05-17 07:50:51* TODO 除法运算,保留小数 * @author 袁忠明 * @date 2018-4-17下午2:24:48 * @param a 被除数 * @param b 除数 * @return 商 */ public static String txfloat(int a,int b) { // TODO -
Java四舍五入时保留指定小数位数的五种方式
2020-09-07 16:49:31主要介绍了Java四舍五入时保留指定小数位数的五种方式,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下 -
Java 保留几位小数
2020-11-23 15:18:18java 中常见的保留几位小数的操作,通常都会用到BigDecimal 类 例如: /** * 四舍五入 */ @Test public void test() { double num = 111231.5585; BigDecimal b = new BigDecimal(num); //保留2位小数 ... -
Java保留小数位数问题
2019-02-05 16:40:36经常会遇到保留小数位数的问题,一次次的百度查资料,每次都只是当时记下来了,过了一段时间就又忘了,所以,为了便于以后查阅,同时也方便跟我一样遇到这类问题的盆友,在此,我总结了一部分java保留小数位数的问题... -
java代码-计算圆的面积,保留5位小数
2021-07-15 02:26:41java代码-计算圆的面积,保留5位小数 -
Java保留两位小数的实现方法
2020-08-30 06:58:34主要介绍了 Java保留两位小数的实现方法的相关资料,需要的朋友可以参考下 -
(Java)实现保留小数位的几种方法
2020-02-03 19:16:45文章目录一、通过 BigDecimal 类实现二、通过String 实现 一、通过 BigDecimal 类实现 主要是通过 BigDecimal 类中的setScale 方法,或者转换为...其中 setScale 方法需要传入两个参数,一个是要保留的位数 newSca... -
java保留小数--四舍五入-- String.format()
2021-03-13 05:43:13文章:http://blueram.iteye.com/blog/441683 JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object...... format(String format, Objecjava保留小数...