首页 > 编程语言 >Java中Double除保留后小数位的几种方法

Java中Double除保留后小数位的几种方法

时间:2023-06-05 10:32:29浏览次数:40  
标签:Java BigDecimal format double System Double println 小数位 out


 返回double型的

1.能四舍五入

double d = 114.145;
d = (double) Math.round(d * 100) / 100;
System.out.println(d);

 2. BigDecimal.ROUND_HALF_UP表示四舍五入,BigDecimal.ROUND_HALF_DOWN也是五舍六入,BigDecimal.ROUND_UP表示进位处理(就是直接加1),BigDecimal.ROUND_DOWN表示直接去掉尾数。

double d = 114.145;
BigDecimal b = new BigDecimal(d);
d = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();  
System.out.println(d);

 返回String型的

1.#.00表示保留后两位,它的处理方式是直接截掉不要的尾数,不四舍五入。

double d = 114.145;
DecimalFormat df = new DecimalFormat("#.00");
String str = df.format(d);
System.out.println(str);

 2.%.2f表示保留后两位,能四舍五入。

double d = 114.145;
String.format("%.2f", d);

 3.RoundingMode.HALF_DOWN表示 五舍六入,负数先取绝对值再五舍六入再负数,RoundingMode.HALF_UP:表示四舍五入,负数先取绝对值再五舍六入再负数。

double d = 114.145
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数
nf.setMaximumFractionDigits(2); 
// 如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);
System.out.println(nf.format(d));

补充:java中保留2位小数的四种方法

package CodeJava_Leet;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
* Created by Yechengpeng on 2016-08-14.
*/

public class Test {
public static void main(String[] args) {
double d = 756.2345566;

//方法一:最简便的方法,调用DecimalFormat类
DecimalFormat df = new DecimalFormat(".00");
System.out.println(df.format(d));

//方法二:直接通过String类的format函数实现
System.out.println(String.format("%.2f", d));

//方法三:通过BigDecimal类实现
BigDecimal bg = new BigDecimal(d);
double d3 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d3);

//方法四:通过NumberFormat类实现
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(d));

}
}

标签:Java,BigDecimal,format,double,System,Double,println,小数位,out
From: https://blog.51cto.com/chengzheng183/6413499

相关文章

  • Java体系面试题(2022)(一)
    全部试题及答案下载基础篇1、Java语言有哪些特点1、简单易学、有丰富的类库2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)3、与平台无关性(JVM是Java跨平台使用的根本)4、可靠安全5、支持多线程2、面向对象和面向过程的区别面向过程:是分析解决问题的步骤,然后用......
  • Java体系面试题(2022)(二)
    全部试题及答案下载JVM篇1、知识点汇总JVM是Java运行基础,面试时一定会遇到JVM的有关问题,内容相对集中,但对只是深度要求较高.其中内存模型,类加载机制,GC是重点方面.性能调优部分更偏向应用,重点突出实践能力.编译器优化和执行模式部分偏向于理论基础,重点掌握知识点.需了......
  • java 行转列
    行转列工具类publicclassRowConvertColUtil{privatestaticfinalStringNULL_VALUE="";privatestaticfinalStringHEADER_NULL_VALUE="工序";privatestaticSet<Object>headerSet;privatestaticSet<Object>f......
  • Java:从单线程计数器到多线程数据同步synchronized和原子类Atomic
    (目录)使用单线程单线程修改计数器的值,没有发生问题,每次运行结果都是10000,不过程序耗时较长packagecom.example;/***计数器*/classCounter{privatestaticlongcount;publicstaticlonggetCount(){returncount;}publicstaticv......
  • 基于JAVA操作系统在线网站SQL
    随着21世纪的到来,人们更深刻的感受到了计算机在生活和工作中作用的重要,越来越多的职业需要具有计算机的应用技能。掌握计算机是职业的需要,社会的需要,更是事业发展的需要。今天,计算机技术不但广泛地应用在办公自动化中,还全面参与到各行各业。所有与计算机相关的职业都要求工作者有......
  • Java学习笔记(十四)
    1.请描述你理解的IO流的作用 I/O流(输入/输出流)的作用是在程序与外部世界(例如文件、网络、控制台等)之间传输数据。2.请描述I/O流的体系结构(1)InputStream类和OutputStream类,其实现类:FileInputStream和FileOutputStream(2)Reader类和Writer类,其实现类:FileReader和FileWriter(3)缓......
  • Java Map 集合类简介
    源:http://www.oracle.com/technetwork/cn/articles/maps1-100947-zhs.html#T1评:了解最常用的集合类型之一Map的基础知识以及如何针对您应用程序特有的数据优化Map。java.util中的集合类包含Java中某些最常用的类。最常用的集合类是List和Map。......
  • 04.如何创建并运行java线程
    评:原文链接译者:章筱虎校对:方腾飞Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。可以用如下方式用java中创建一个线程:查看源代码打印帮助1Treadthread=newThread();执行该线程可以调用该线程的start()方法:查看源代码打印帮助1thre......
  • Java URL正则表达式
    评:网上转贴的Java正则很让人失望,一篇JavaScript正则集录被很多人当成Java正则表达式转来转去,我擦,太坑爹了吧。自己写一个吧importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassRegularExpressionTest{publicstaticvoidmain(S......
  • 浅谈java异常[Exception]
    评:一.异常的定义在《java编程思想》中这样定义异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。之所以java要提出异常处理机制,就是要......