今天测试测出消息传递过程中有个小数精确度有问题。
要求保留小数点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.text.DecimalFormat`和`java.text.NumberFormat...
### Java保留两位小数的方法详解 #### 方法一:使用`BigDecimal` **原理**:通过`BigDecimal`类提供的方法,能够精确地控制数值的精度。在本案例中,使用`setScale`方法来设置小数点后保留的位数,并指定舍入规则...
从String中提取数字还有小数点
第一种方法-使用DecimalFormat类 举个例子,假如我们需要保留两位小数,我们可以这样写 DecimalFormat df = new DecimalFormat(0.00); 测试如下: double d = 0.200; DecimalFormat df = new ...
保留小数点后两位的方法如下: ```java public static String format1(double value) { BigDecimal bd = new BigDecimal(value); bd = bd.setScale(2, RoundingMode.HALF_UP); return bd.toString(); } ``` ...
本篇文章将详细介绍如何使用Java代码来实现这个功能,特别是通过`NumberFormat`类和其子类`DecimalFormat`来保留小数点后的位数。 首先,我们来看一下提供的代码片段。这个程序定义了一个名为`Test`的类,其中包含...
Java中Double除保留后小数位的几种方法 Java中Double除保留后小数位的几种方法是指在Java编程语言中,对Double类型数据进行保留小数位的操作。这种操作在实际开发中非常常见,例如在统计成绩、金融计算、科学计算等...
Java指定保留小数位数的方法 Java语言中经常需要保留小数位数,例如在金融、科研等领域,保留小数位数是非常重要的。这篇文章将详细介绍Java指定保留小数位数的方法,包括使用String.format方法、DecimalFormat类和...
在Java编程语言中,对数字进行四舍五入并保留指定的小数位数是常见的需求。以下是五种不同的方法来实现这一目标: 1. **使用`BigDecimal`类**: `BigDecimal`是Java中用于处理高精度、大数值计算的类,提供了多种...
在Java编程中,处理小数点后多余的零是一个常见的需求,特别是在进行数学计算或格式化输出时。小数点后的零可能会影响数据的显示效果,甚至可能会改变数值的精度。以下是一些关于如何处理Java中小数点后多余零的知识...
在上面的代码中,我们创建了一个`DecimalFormat`对象,并使用`format`方法将`double`类型的`num`转换为保留两位小数的字符串。这个过程可以有效地处理各种浮点数,无论是正数、负数还是零。 另外,如果原始数字的...
在Java编程语言中,保留小数位数是一个常见的需求,尤其是在金融或科学计算中。本文将详细介绍四种方法,用于在Java程序中将数值格式...希望本文介绍的Java中保留两位小数的四种方法能够给大家在编程实践中带来帮助。
在Java编程语言中,处理数值类型的精度问题是一个常见的需求,特别是在金融、统计或者科学计算等领域。当涉及到`double`类型数据的处理时,保持数值的精确性和格式化输出显得尤为重要。例如,在处理货币金额时,通常...
本文将详细介绍四种在Java中保留小数的方法,分别是使用`BigDecimal`、`DecimalFormat`、`String.format()`以及`NumberFormat`类。 1. **使用BigDecimal进行四舍五入** `BigDecimal` 类提供了一个精确的浮点数运算...
Java语言中保留两位小数可以使用String.format()方法,例如: double acc = 22.4322; String accX = String.format("%.2f", acc); 这将将acc的值保留到小数点后两位,并将其转换为字符串形式。 在Freemarker中...
2. **数据类型转换**:在转换字符串到数字时,可以使用特定的方法保留小数点前的零。比如在Python中,使用`float('0.7')`而不是`7.`,可以确保小数点前的零得到保留。 3. **格式化输出**:在显示数字时,可以使用...
在Java编程语言中,BigDecimal是用于处理高精度和可配置精度的十进制数的类。在进行商业计算时,由于浮点数(double和float)存在精度问题,不能保证准确的结果,因此通常推荐使用BigDecimal来确保计算的精确性。本文...
JavaScript中的小数点精确计算是开发者经常会遇到的一个挑战。由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将...