java 四舍五入保留小数点后两位

java 四舍五入保留小数点后两位方式一:doublef=3.1516;BigDecimalb=newBigDecimal(f);doublef1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();输出结果f1为3.15;源码解读:  publicBigDecimalsetScale(intnewScale,introundingMode)//intnewScale为小数点后保留的位数,introundingMode为变量进

大家好,又见面了,我是你们的朋友全栈君。

方式一:

double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 
输出结果f1为 3.15

源码解读:
  public BigDecimal setScale(int newScale, int roundingMode) //int newScale 为小数点后保留的位数, int roundingMode 为变量进行取舍的方式;
  BigDecimal.ROUND_HALF_UP 属性含义为为四舍五入

方式二:

String format = new DecimalFormat("#.0000").format(3.1415926);
System.out.println(format);
输出结果为 3.1416

解读:
  #.00 表示两位小数 #.0000四位小数 以此类推…

方式三:

double num = 3.1415926;
String result = String.format("%.4f", num);
System.out.println(result);
输出结果为:3.1416

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

double num = Math.round(5.2544555 * 100) * 0.01d;
System.out.println(num);
输出结果为:5.25

解读:
  最后乘积的0.01d表示小数点后保留的位数(四舍五入),0.0001 为小数点后保留4位,以此类推…
  
方式五:

  1. 功能
    将程序中的double值精确到小数点后两位。可以四舍五入,也可以直接截断。
    比如:输入12345.6789,输出可以是12345.68也可以是12345.67。至于是否需要四舍五入,可以通过参数来决定(RoundingMode.UP/RoundingMode.DOWN等参数)。

  2. 实现代码

package com.clzhang.sample;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class DoubleTest { 

/** 保留两位小数,四舍五入的一个老土的方法 */
public static double formatDouble1(double d) { 

return (double)Math.round(d*100)/100;
}
public static double formatDouble2(double d) { 

// 旧方法,已经不再推荐使用
// BigDecimal bg = new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP);
// 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
return bg.doubleValue();
}
public static String formatDouble3(double d) { 

NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数
nf.setMaximumFractionDigits(2); 
// 如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);
return nf.format(d);
}
/**这个方法挺简单的 */
public static String formatDouble4(double d) { 

DecimalFormat df = new DecimalFormat("#.00");
return df.format(d);
}
/**如果只是用于程序中的格式化数值然后输出,那么这个方法还是挺方便的, 应该是这样使用:System.out.println(String.format("%.2f", d));*/
public static String formatDouble5(double d) { 

return String.format("%.2f", d);
}
public static void main(String[] args) { 

double d = 12345.67890;
System.out.println(formatDouble1(d));
System.out.println(formatDouble2(d));
System.out.println(formatDouble3(d));
System.out.println(formatDouble4(d));
System.out.println(formatDouble5(d));
}
}
  1. 输出
    12345.68
    12345.68
    12,345.68
    12345.68
    12345.68
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143652.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 常见的测试用例设计方法_条件覆盖测试用例

    常见的测试用例设计方法_条件覆盖测试用例文章目录前言测试用例概述常见用例设计方法等价类边界值用例设计考虑层面复杂系统如何设计用例结尾前言大家好,我是洋子。今天给大家分享在做软件测试时,最容易忽略但却重要的知识点,那就是测试用例设计。用例设计就是软件测试工程师的灵魂,体现了你的测试思维,以及对业务需求的熟悉程度。有时侯出现线上事故,可能就是测试用例没有覆盖全面测试用例概述考虑部分同学是转行做软件测试,我先说一下测试用例是什么测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需

    2022年10月10日
  • wireshark流量分析实战

    wireshark流量分析实战wiresharkWireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。下面是在网上找的数据包资源,来自2018的铁人三项流量分析题目,一共有二十题,共有六个数据包,本人习惯一题一题来,不过可能是个很不好的习惯1.黑客的IP是多少…

  • windows密码获取 — LC5暴力激活成功教程Hash密码「建议收藏」

    windows密码获取 — LC5暴力激活成功教程Hash密码「建议收藏」​错,可以改,那,错过呢。。。—-网易云热评一、首先用QuarksPwDump导出hash值并存储到1.txtquarkspwdump–dump-hash-local–output1.txt二、下载并安装LC5并注册1、下载地址:回复2、双击lc5setup一路下一步,3、将hashgen和lc5替换了原文件4、双击lc5,并打开注册机,点击administrator三、使用方法1、点击会话,导入1.txt…

  • mac svn使用教程(linux 终端命令)

    使用Homebrew下载svnbrewinstallsvn查询svn下载路径并测试svn安装whichsvnsvn-version检出项目:先进入要检出的项目目录svncheckoutsvn地址

  • Java怎么安装 详细教程来了 附带安装包

    Java怎么安装 详细教程来了 附带安装包首先,有很多小伙伴不会java环境搭建,java不需要安装,java是绿色软件,尤其是openjdk是绿色软件,你解压缩即可食用,步骤如下:1)去injdkcn上下载openjdk或者gaa,都可以,下载之后,解压缩2)去idea官方网站下载免费的,社区版的idea,对,就是右边色的那个版本,别下错,下成左边蓝色版本,那个是收费的,下载下来之后,安装ide3)打开刚刚安装好的ide,然后就可以开始写java了,当ide问你,jdk在哪里的时候,你就把你刚刚解压缩后的位置告诉ide就可以了

  • 狂神说Linux_狂神说博客园

    狂神说Linux_狂神说博客园Linux在服务器端,很多大型项目都是部署在Linux服务器上利用VM + Centos7搭建本地Linux系统你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。概念云服务器就是一个远程电脑Linux中一切皆文件根目录/,所有的文件都挂载在这个节点下/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。/boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev : dev是Device(设备

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号