java保留小数点后两位_JAVA中小数点后保留两位的方法有哪些_weixin_39587164的博客-程序员信息网

技术标签: java保留小数点后两位  

JAVA中小数点后保留两位的方法有哪些

相信大家在平时做项目时,可能会有这样的业务需求:页面或界面上展示的数据保留小数点后两位。 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).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();

}

}

2.输出结果:

111231.56

111231.56

111231.56

111,231.56

这里我们提供了一个工具类,定义浮点数的加、减、乘、除和四舍五入等运算方法。以供参考。

源文件MathExtend.java:

import java.math.BigDecimal;

public class MathExtend

{

//默认除法运算精度

private static final int DEFAULT_p_SCALE = 10;

/**

* 提供精确的加法运算。

* @param v1

* @param v2

* @return 两个参数的和

*/

public static double add(double v1, double v2)

{

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.add(b2).doubleValue();

}

/**

* 提供精确的加法运算

* @param v1

* @param v2

* @return 两个参数数学加和,以字符串格式返回

*/

public static String add(String v1, String v2)

{

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return b1.add(b2).toString();

}

/**

* 提供精确的减法运算。

* @param v1

* @param v2

* @return 两个参数的差

*/

public static double subtract(double v1, double v2)

{

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

/**

* 提供精确的减法运算

* @param v1

* @param v2

* @return 两个参数数学差,以字符串格式返回

*/

public static String subtract(String v1, String v2)

{

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return b1.subtract(b2).toString();

}

/**

* 提供精确的乘法运算。

* @param v1

* @param v2

* @return 两个参数的积

*/

public static double multiply(double v1, double v2)

{

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.multiply(b2).doubleValue();

}

/**

* 提供精确的乘法运算

* @param v1

* @param v2

* @return 两个参数的数学积,以字符串格式返回

*/

public static String multiply(String v1, String v2)

{

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return b1.multiply(b2).toString();

}

/**

* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到

* 小数点以后10位,以后的数字四舍五入,舍入模式采用ROUND_HALF_EVEN

* @param v1

* @param v2

* @return 两个参数的商

*/

public static double pide(double v1, double v2)

{

return pide(v1, v2, DEFAULT_p_SCALE);

}

/**

* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指

* 定精度,以后的数字四舍五入。舍入模式采用ROUND_HALF_EVEN

* @param v1

* @param v2

* @param scale 表示需要精确到小数点以后几位。

* @return 两个参数的商

*/

public static double pide(double v1,double v2, int scale)

{

return pide(v1, v2, scale, BigDecimal.ROUND_HALF_EVEN);

}

/**

* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指

* 定精度,以后的数字四舍五入。舍入模式采用用户指定舍入模式

* @param v1

* @param v2

* @param scale 表示需要精确到小数点以后几位

* @param round_mode 表示用户指定的舍入模式

* @return 两个参数的商

*/

public static double pide(double v1,double v2,int scale, int round_mode){

if(scale < 0)

{

throw new IllegalArgumentException("The scale must be a positive integer or zero");

}

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.pide(b2, scale, round_mode).doubleValue();

}

/**

* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到

* 小数点以后10位,以后的数字四舍五入,舍入模式采用ROUND_HALF_EVEN

* @param v1

* @param v2

* @return 两个参数的商,以字符串格式返回

*/

public static String pide(String v1, String v2)

{

return pide(v1, v2, DEFAULT_p_SCALE);

}

/**

* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指

* 定精度,以后的数字四舍五入。舍入模式采用ROUND_HALF_EVEN

* @param v1

* @param v2

* @param scale 表示需要精确到小数点以后几位

* @return 两个参数的商,以字符串格式返回

*/

public static String pide(String v1, String v2, int scale)

{

return pide(v1, v2, DEFAULT_p_SCALE, BigDecimal.ROUND_HALF_EVEN);

}

/**

* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指

* 定精度,以后的数字四舍五入。舍入模式采用用户指定舍入模式

* @param v1

* @param v2

* @param scale 表示需要精确到小数点以后几位

* @param round_mode 表示用户指定的舍入模式

* @return 两个参数的商,以字符串格式返回

*/

public static String pide(String v1, String v2, int scale, int round_mode)

{

if(scale < 0)

{

throw new IllegalArgumentException("The scale must be a positive integer or zero");

}

BigDecimal b1 = new BigDecimal(v1);

BigDecimal b2 = new BigDecimal(v2);

return b1.pide(b2, scale, round_mode).toString();

}

/**

* 提供精确的小数位四舍五入处理,舍入模式采用ROUND_HALF_EVEN

* @param v 需要四舍五入的'数字

* @param scale 小数点后保留几位

* @return 四舍五入后的结果

*/

public static double round(double v,int scale)

{

return round(v, scale, BigDecimal.ROUND_HALF_EVEN);

}

/**

* 提供精确的小数位四舍五入处理

* @param v 需要四舍五入的数字

* @param scale 小数点后保留几位

* @param round_mode 指定的舍入模式

* @return 四舍五入后的结果

*/

public static double round(double v, int scale, int round_mode)

{

if(scale<0)

{

throw new IllegalArgumentException("The scale must be a positive integer or zero");

}

BigDecimal b = new BigDecimal(Double.toString(v));

return b.setScale(scale, round_mode).doubleValue();

}

/**

* 提供精确的小数位四舍五入处理,舍入模式采用ROUND_HALF_EVEN

* @param v 需要四舍五入的数字

* @param scale 小数点后保留几位

* @return 四舍五入后的结果,以字符串格式返回

*/

public static String round(String v, int scale)

{

return round(v, scale, BigDecimal.ROUND_HALF_EVEN);

}

/**

* 提供精确的小数位四舍五入处理

* @param v 需要四舍五入的数字

* @param scale 小数点后保留几位

* @param round_mode 指定的舍入模式

* @return 四舍五入后的结果,以字符串格式返回

*/

public static String round(String v, int scale, int round_mode)

{

if(scale<0)

{

throw new IllegalArgumentException("The scale must be a positive integer or zero");

}

BigDecimal b = new BigDecimal(v);

return b.setScale(scale, round_mode).toString();

}

}

【JAVA中小数点后保留两位的方法有哪些】相关文章:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39587164/article/details/114038347

智能推荐

Python3入门机器学习 - 线性回归与knn算法处理boston数据集_xiaochen1999的博客-程序员信息网

简单线性回归最小二乘法实现原理使用最小二乘法计算a、b的值,实现线性回归的拟合# _*_ encoding:utf-8 _*_import numpy as npclass SimpleLinearRegression1: //该类使用for循环方法计算a、b值,效率较低 def __init__(self): self.a_ = None ...

实例化Servlet类异常_自学Java的小龙的博客-程序员信息网_实例化servlet类异常

最近初学Servlet,在编写第一个Servlet程序时,遇到了一个令我很苦恼的问题。java代码和XML配置文件中的内容都没有问题,也在Edit Configurations中修改了server的name和Deployment的Apolication content的内容,都修改成了工程名,但是运行此工程时,却发现一直报错,实例化Servlet类[com.atguigu.test.servlet1]异常。后来发现,是因为IDEA中配置的Tomcat服务器版本过于高,和Servle...

weixin-js-sdk常见使用方法(vue)_monkey_zero的博客-程序员信息网

1.安装npm install weixin-js-sdk2.判断是否是在微信浏览器中env.js&lt;script&gt;var ua = navigator.userAgent.toLowerCase();var isWeixin = ua.indexOf('micromessenger') != -1;var isAndroid = ua.indexOf('androi...

一文带你了解Redis持久化完整版本_咔咔-的博客-程序员信息网

本文讲解知识点持久化的简介RDBAOFRDB与AOF的区别持久化应用场景对于持久化这个功能点,其实很简单没有那么复杂Redis持久化演示环境1. 持久化简介2. RDB2-1 RDB启动方式 -- save命令2-2 RDB启动方式 -- save指令相关配置2-3 RDB数据恢复2-4 RDB -- save指令工作原理2-5 RDB -- bgsave指令工作原理2-5 RDB -- 配置文件自启动3. AOF3-1 AOF概念3-2 AOF写数据过程3-3 AOF写数据的.

window10如何删除旧版windows,即Windows.old_做个好男人!的博客-程序员信息网

window10如何删除旧版windows,即Windows.oldwin10系统相对于之前的windows系列在安全性方面做得更好(win10一般可以不安装杀毒软件,使用系统自带的防护功能即可),当用户在进行删除文件、安装软件等操作的时候需要获得相关权限。而我们知道win10系统经常会更新(用户可选择是否关闭自动更新:win10自动更新与后台启动了自动更新的服务有关),而每当更新之后会产生...

解决tensorflow中报错NotFoundError:_qq_38644840的博客-程序员信息网

废话不多说直接上我遇到的问题。我在训练自己修改的Mobile net_V2时遇到一个问题在笔记本上自己训练好自己的模型能通过简单的模型调用方式(https://blog.csdn.net/qq_38644840/article/details/96475356类似第二种方式调用)。是可以直接运行的,但是最近在看PBT训练方式,因此我将模型和自己的数据移植到别人的训练框架下运行保存得到...

随便推点

Centos7下安装和配置vim_小虚竹的博客-程序员信息网_centos7离线安装vim

Centos7 最新版本默认已经安装vim,可以使用命令查看是否安装rpm -qa|grep vim输出结果如下,如无以下输出结果,则安装vim:vim-filesystem-7.4.160-4.el7.x86_64vim-minimal-7.4.160-4.el7.x86_64vim-enhanced-7.4.160-4.el7.x86_64vim-common-7.4.160-4.el7.x86_64yum -y install vim*安装完成后开始配置vim

【BP回归预测】基于matlab Tent混沌映射改进的麻雀算法优化BP神经网络回归预测【含Matlab源码 1707期】_海神之光的博客-程序员信息网

一、sine混沌映射改进的麻雀搜索算法优化BP神经网络简介ISSA优化BP神经网络算法建模过程如图1所示,具体流程如下:(1) 确定BP神经网络的拓扑结构,输入层节点数为5,隐含层节点为8,输出层节点数为1;(2) 对气动光学成像偏移数据进行预处理;(3) 初始化麻雀搜索算法;(4) 计算每个麻雀个体的适应度;(5) 根据公式(6)、(7)和(3)更新发现者、加入者和侦察者的位置;(6) 更新适应度,判断是否达到最大迭代次数或达到最初设定的收敛精度,如果满足则继续下一步,否则返回步骤(4);

prometheus监控耗时MySQL_使用prometheus+grafana监控MySQL监控Oracle_weixin_39980711的博客-程序员信息网

加载mysqld_exportercd prometheus_exporter/mysqld_exporter-0.12.1.linux-amd64创建MySQL数据库监控用户:create user [email protected]'%' identified by 'Mysql_monitor123';GRANT REPLICATION CLIENT, PROCESS ON *.* TO mysq...

ffmpeg的avformat_alloc_context()分析过程(九)_andylao62的博客-程序员信息网_avformat_alloc_context

avformat_alloc_context这个函数主要实现了分配一个AVFormatContext。他可用于由框架分配的在上下文和所有内容,即分配解复用器上下文AVFormatContext *avformat_alloc_context(void){ AVFormatContext *ic; ic = av_malloc(sizeof(AVFormatContext)); if (!ic) return ic; avformat_get_context_defa.

C语言中的缓冲输出_weixin_33940102的博客-程序员信息网

程序的输出方式有两种:一种是及时输出,另一种是先缓存起来,然后大块输出。前者往往给系统造成很大的负担,影响程序性能。后者的实现,C语言通过函数 void setbuf ( FILE * stream, char * buffer );实现。此函数的功能是通知输入输出函数库中的函数,所有写入到stream的输出都应该使用buffer作为输出缓冲区,直到buffer缓冲区被填满,或者程序员显...

python自动化办公技巧 -- word、excel及pdf转换_m0_38056893的博客-程序员信息网

1.doc文件批量转docx文件(1)原有文件(2)代码# 1.doc格式批量转docx.pyimport osfrom win32com import clientdef getAllFilesList(filepath): """ 获取指定目录下的所有doc文件列表 :param filepath: 指定目录 :return: 指定目录下的所有doc文件列表 """ files = [] for file in os.

推荐文章

热门文章

相关标签