`

Java中保留小数点的方法

阅读更多

今天测试测出消息传递过程中有个小数精确度有问题。

要求保留小数点6位,不够的用0补充,结果开发时没注意,0.123456格式控制后变成了.123456,虽然从的值的角度来说没有区别,但是下游收到消息的人不认。。。。。。

总结了以下常见的四舍五入方法:

public static void main(String[] args) {
		
		System.out.println(getNum(0.23656,"#.0000",false));//.2365 不四舍五入,整数部分为0时省略
		System.out.println(getNum(0.23656,"0.0000",false));//0.2365不进行四舍五入,整数部分为0时不省略
		System.out.println(getNum(0.23656,"0.0000",true));//0.2366 进行四舍五入 
		System.out.println(getNum(0.236,"0.0000",true));//0.2366 进行四舍五入  不够的小数部分补零
//		
//		System.out.println(getNum2(0.23456,3));//精确小数点第三位,四舍五入
		
		//System.out.println(getNum3(0.2345,3,false));//0.234
		
//		System.out.println(getNum4(0.2345,3,false));//0.234
//		System.out.println(getNum4(0.2345,3,true));//0.235
//		System.out.println(getNum4(0.23,3,false));//0.23 没有补零
	}
	
	
	public static String getNum(double str,String pattern,boolean flag){
		DecimalFormat format = new DecimalFormat(pattern);//保留小数点三位
		if(flag) {
			format.setRoundingMode(RoundingMode.UP);//进行四舍五入
		} else {
			format.setRoundingMode(RoundingMode.DOWN);//不进行四舍五入
		}
		return format.format(str);
	}
	
	
	public static String getNum2(double str , int decima) {
		long n = 1;
		for(int i = 1 ; i <= decima; i++ )
			n *= 10;
		return String.valueOf((int)(str * n +0.5) / (n * 1.0));
	}
	
	
	public  static double getNum3(double str,int point, boolean flag){
		BigDecimal   b   =   new   BigDecimal(str); 
		if(flag) {
			return b.setScale(point,  BigDecimal.ROUND_HALF_UP).doubleValue();
		} 
		return b.setScale(point,  BigDecimal.ROUND_HALF_DOWN).doubleValue();
	}
	
	
	
	public static String getNum4(double d,int point,boolean flag) {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(point); // 保留小数点位数
        if(flag){
        	 nf.setRoundingMode(RoundingMode.UP);//四舍五入
        }else {
        	 nf.setRoundingMode(RoundingMode.DOWN);// 不四舍五入
        }
        return nf.format(d);
    }
	

 

分享到:
评论

相关推荐

    java代码-使用java解决Java中保留小数点的方法的源代码

    java代码-使用java解决Java中保留小数点的方法的源代码 ——学习参考资料:仅用于个人学习使用!

    java保留两位小数问题

    ### Java保留两位小数问题详解 在Java编程中,处理数值型数据时,经常会遇到需要对数字进行格式化的需求,尤其是对于浮点数的操作。本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及...

    java(小数点,百分号处理)

    ### Java中的小数点与百分号处理技巧 在Java编程中,经常需要处理数值的格式化显示问题,尤其是在涉及财务、统计分析等场景时。本文将详细介绍如何利用Java中的`java.text.DecimalFormat`和`java.text.NumberFormat...

    Java保留两位小数方法大全

    ### Java保留两位小数的方法详解 #### 方法一:使用`BigDecimal` **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则...

    从String中提取数字还有小数点

    从String中提取数字还有小数点

    关于Java小数点位数保留的解决方案

    第一种方法-使用DecimalFormat类  举个例子,假如我们需要保留两位小数,我们可以这样写  DecimalFormat df = new DecimalFormat(0.00);  测试如下:  double d = 0.200;  DecimalFormat df = new ...

    Java保留两位小数的几种写法总结

    保留小数点后两位的方法如下: ```java public static String format1(double value) { BigDecimal bd = new BigDecimal(value); bd = bd.setScale(2, RoundingMode.HALF_UP); return bd.toString(); } ``` ...

    使用java代码实现保留小数点的位数

    本篇文章将详细介绍如何使用Java代码来实现这个功能,特别是通过`NumberFormat`类和其子类`DecimalFormat`来保留小数点后的位数。 首先,我们来看一下提供的代码片段。这个程序定义了一个名为`Test`的类,其中包含...

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

    Java中Double除保留后小数位的几种方法 Java中Double除保留后小数位的几种方法是指在Java编程语言中,对Double类型数据进行保留小数位的操作。这种操作在实际开发中非常常见,例如在统计成绩、金融计算、科学计算等...

    Java指定保留小数位数的方法

    Java指定保留小数位数的方法 Java语言中经常需要保留小数位数,例如在金融、科研等领域,保留小数位数是非常重要的。这篇文章将详细介绍Java指定保留小数位数的方法,包括使用String.format方法、DecimalFormat类和...

    java代码-java 小数点后的多余的0处理

    在Java编程中,处理小数点后多余的零是一个常见的需求,特别是在进行数学计算或格式化输出时。小数点后的零可能会影响数据的显示效果,甚至可能会改变数值的精度。以下是一些关于如何处理Java中小数点后多余零的知识...

    Java四舍五入时保留指定小数位数的五种方式

    在Java编程语言中,对数字进行四舍五入并保留指定的小数位数是常见的需求。以下是五种不同的方法来实现这一目标: 1. **使用`BigDecimal`类**: `BigDecimal`是Java中用于处理高精度、大数值计算的类,提供了多种...

    保留2位小数

    在上面的代码中,我们创建了一个`DecimalFormat`对象,并使用`format`方法将`double`类型的`num`转换为保留两位小数的字符串。这个过程可以有效地处理各种浮点数,无论是正数、负数还是零。 另外,如果原始数字的...

    Java中保留两位小数的四种方法实现实例

    在Java编程语言中,保留小数位数是一个常见的需求,尤其是在金融或科学计算中。本文将详细介绍四种方法,用于在Java程序中将数值格式...希望本文介绍的Java中保留两位小数的四种方法能够给大家在编程实践中带来帮助。

    double类型转换

    在Java编程语言中,处理数值类型的精度问题是一个常见的需求,特别是在金融、统计或者科学计算等领域。当涉及到`double`类型数据的处理时,保持数值的精确性和格式化输出显得尤为重要。例如,在处理货币金额时,通常...

    java、freemarker保留两位小数

    Java语言中保留两位小数可以使用String.format()方法,例如: double acc = 22.4322; String accX = String.format("%.2f", acc); 这将将acc的值保留到小数点后两位,并将其转换为字符串形式。 在Freemarker中...

    真正解决小数点问题

    2. **数据类型转换**:在转换字符串到数字时,可以使用特定的方法保留小数点前的零。比如在Python中,使用`float('0.7')`而不是`7.`,可以确保小数点前的零得到保留。 3. **格式化输出**:在显示数字时,可以使用...

    java保留小数的四种实现方法

    本文将详细介绍四种在Java中保留小数的方法,分别是使用`BigDecimal`、`DecimalFormat`、`String.format()`以及`NumberFormat`类。 1. **使用BigDecimal进行四舍五入** `BigDecimal` 类提供了一个精确的浮点数运算...

    java中BigDecimal的操作方法

    在Java编程语言中,BigDecimal是用于处理高精度和可配置精度的十进制数的类。在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文...

    JavaScript小数点精确计算

    JavaScript中的小数点精确计算是开发者经常会遇到的一个挑战。由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将...

Global site tag (gtag.js) - Google Analytics