import java.math.BigDecimal;
import java.text.DecimalFormat;
/**
* 获取指定位数的小数工具类<br>
*
* @author mxy(Email:987938582@qq.com)
*
*/
public class NumberFormat {
/**
* BigDecimal转换最简便,采用四舍五入方式
*
* @param num 要转换的数字
* @param length 保留几位小数
*/
public double formatByBigDecimal(double num, int length) {
BigDecimal bg = new BigDecimal(num);
double f1 = bg.setScale(length, BigDecimal.ROUND_HALF_UP).doubleValue();
// System.out.println("转换后的结果:"+f1);
return f1;
}
/**
* DecimalFormat转换最简便,采用四舍五入方式
*
* @param num 要转换的数字
* @param length 保留几位小数
*/
public double formatByDecimalFormat(double num, int length) {
String foramtStr = "#";
if (length > 0) {
foramtStr += ".";
for (int i = 0; i < length; i++) {
foramtStr += "0";
}
}
DecimalFormat df = new DecimalFormat(foramtStr);
// System.out.println("转换后的结果:"+df.format(num));
return Double.valueOf(df.format(num));
}
/**
* String.format方式格式化,采用四舍五入方式
*
* @param num 要转换的数字
* @param length 保留几位小数
*/
public double formatByStringFormat(double num, int length) {
double f = 111231.5585;
String formatStr = "";
if (length > 0) {
formatStr = "%." + length + "f";
} else {
formatStr = "%.0f";
}
// System.out.println("转换后的结果:"+String.format(formatStr, num));
return Double.valueOf(String.format(formatStr, num));
}
public static void main(String[] args) {
NumberFormat f = new NumberFormat();
double num = 111231.558512311234812932134923;
/* 10位小数 */
System.out.println(f.formatByBigDecimal(num, 10));
System.out.println(f.formatByDecimalFormat(num, 10));
System.out.println(f.formatByStringFormat(num, 10));
/* 10位小数 */
System.out.println();
/* 5位小数 */
System.out.println(f.formatByBigDecimal(num, 5));
System.out.println(f.formatByDecimalFormat(num, 5));
System.out.println(f.formatByStringFormat(num, 5));
/* 5位小数 */
System.out.println();
/* 一位小数 */
System.out.println(f.formatByBigDecimal(num, 1));
System.out.println(f.formatByDecimalFormat(num, 1));
System.out.println(f.formatByStringFormat(num, 1));
/* 一位小数 */
System.out.println();
/* 0位小数 */
System.out.println(f.formatByBigDecimal(num, 0));
System.out.println(f.formatByDecimalFormat(num, 0));
System.out.println(f.formatByStringFormat(num, 0));
/* 0位小数 */
System.out.println();
/*-1位小数*/
System.out.println(f.formatByBigDecimal(num, -1));
System.out.println(f.formatByDecimalFormat(num, -1));
System.out.println(f.formatByStringFormat(num, -1));
/*-1位小数*/
}
}
运行结果:
111231.5585123112
111231.5585123112
111231.5585123112
111231.55851
111231.55851
111231.55851
111231.6
111231.6
111231.6
111232.0
111232.0
111232.0
111230.0
111232.0
111232.0
分享到:
相关推荐
### Java保留两位小数的方法详解 #### 方法一:使用`BigDecimal` **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则...
### Java保留两位小数问题详解 在Java编程中,处理数值型数据时,经常会遇到需要对数字进行格式化的需求,尤其是对于浮点数的操作。本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及...
java技术,对象操作:数值取整和保留两位小数,将数值转换成字符串。
TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_保留小数位TRUNC_...
java代码-使用java保留四位小数的源代码 ——学习参考资料:仅用于个人学习使用!
在Java编程中,有时我们需要将数字格式化为保留两位小数的形式,以便在页面或界面上展示。这里我们将深入探讨几种常见的实现方式,并通过具体的示例代码来理解它们的工作原理。 1. **使用java.math.BigDecimal** `...
当我们需要将`double`类型的数据格式化为保留两位小数的字符串时,可以使用`DecimalFormat`类,这是Java `java.text`包中的一个类,专门用于数值的格式化。 `DecimalFormat`类允许我们定义特定的模式来控制数字的...
Java中Double除保留后小数位的几种方法是指在Java编程语言中,对Double类型数据进行保留小数位的操作。这种操作在实际开发中非常常见,例如在统计成绩、金融计算、科学计算等领域中都需要对Double类型数据进行保留...
本文将详细介绍如何在Excel中使用`ROUND`函数来实现保留两位小数的功能,并通过具体示例帮助读者更好地理解和应用这一技巧。 ### 一、ROUND函数的基本用法 #### 1.1 函数定义 `ROUND`函数用于将数字四舍五入到指定...
Java编程语言中,保留小数是一项常见的操作,特别是在处理金融数据或者进行数学计算时。本文将详细介绍四种在Java中保留小数的方法,分别是使用`BigDecimal`、`DecimalFormat`、`String.format()`以及`NumberFormat`...
项目中遇到小数相似度(业务给过来是小数)需要web界面以百分数的形式表示,并且保留两位小数。 直接上代码。 var nval = 0.12345; var percent = (Math.round(nval*10000))/100+'%'; 说明: 1.Math.round(num)函数...
本文将详细介绍几种在Java中使double类型保留两位小数的方法。 ### 方法一:使用BigDecimal进行四舍五入 `BigDecimal` 类提供了精确的浮点数运算,并且支持自定义舍入模式。以下是一个例子: ```java double f = ...
BigDecimal类是Java提供的一种高精度数字类,可以用于保留小数位数。例如,使用以下代码可以将小数保留两位: ```java BigDecimal bd = new BigDecimal("3.14159"); bd = bd.setScale(2, RoundingMode.HALF_UP); ...
实现C#保留几个小数点的函数,简单实用,利用Math.Round函数
本篇文章将深入探讨如何在不涉及精度处理和不使用强制类型转换的情况下,进行取整、取小数、保留特定位数的小数以及计算自幂数的操作。我们将通过一系列的方法来实现这些功能。 首先,我们关注的是判断一个大数值...
进一法 保留一位小数封装好的组件可直接引用(从某处定位到当前位置的距离计算法则)进一法 保留一位小数封装好的组件可直接引用(从某处定位到当前位置的距离计算法则)进一法 保留一位小数封装好的组件可直接引用...
1025:保留12位小数的浮点数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 27948 通过数: 24399 【题目描述】 读入一个双精度浮点数,保留12位小数,输出这个浮点数。 【输入】 只有一行,一个双精度浮点数。 ...
4. **格式化输出**:可以按照特定格式(例如保留几位小数,是否显示百分号等)输出小数或百分数。 在9_3_数值处理组件中,可能包含了实现这些功能的类和方法。通过分析源代码,我们可以学习如何优雅地处理小数和...
在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...