-
java中double型数据如何四舍五入?10
问题描述: java中如何将一个double保存指定位数有效数字且进行四舍五入?
下面以保存两位有效数字为例。
(1)首先我们想到用先乘以100取整后再除以100.0这种做法:
System.out.println(Math.round(4.015*100)/100.0);
执行结果为4.01,显然没有达到我们想要的结果。
(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
执行结果都为4.02。
(3)用java.math.BigDecimal.
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());
结果:4.01 (当使用4.025时结果为4.03)
看来还是达不到效果。
(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);
不知道大家有没有更好的办法?2010年3月28日 11:06
5个答案 按时间排序 按投票排序
-
Java取整函数 四舍五入函数
http://dict.xsoftlab.net/dict/the-java-rounding-function2014年9月04日 21:55
-
要这样,注意红色部分
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(Double.toString(abc)).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());2010年3月28日 11:39
-
This is what I used :
java.text.DecimalFormat d_f = new java.text.DecimalFormat("########.00");2010年3月28日 11:06
相关推荐
- **取小数点前两位并四舍五入**:使用`Math.round()`方法结合数学运算实现,例如: ```java double value = 123.456; double roundedValue = Math.round(value * 100.0) / 100.0; ``` #### 4. 日期和时间 - *...
- **浮点数与整数的舍入**:`Math.round()`可以将浮点数转换为整数,同时进行四舍五入。 理解这些转换规则对于编写高效且无错的Java代码至关重要。在编程实践中,要特别注意数据类型的兼容性和潜在的类型转换问题...
4. 在运算过程中,适时进行四舍五入处理,以避免精度损失累积。 在实际操作中,Java程序通过JDBC与MySQL数据库交互时,需要特别注意数据类型的对应关系。Java的float对应MySQL的FLOAT,double对应DOUBLE。当处理...
Java学习笔记中的变量和数据类型是 Java 语言的基础,了解 Java 的变量和数据类型是学习 Java 的必要步骤。 1. 数据类型 Java 中的数据类型可以分为基本数据类型和引用数据类型两种。基本数据类型包括整数型、...
当输出单个浮点型数据的时候,可以正确输出,如 double d = 2.4;System.out.println(d); 输出的是 2.4,而不是 2.3999999999999999。也就是说,不进行浮点计算的时候,在十进制里浮点数能正确显示。这更印证了我以上...
- 浮点型转换为整型时,会舍去小数部分,而不是四舍五入。如果需要四舍五入,可以先乘以10的适当幂,再进行整数转换,最后除以相同幂。 - 在进行类型转换时,尤其是涉及精度和范围的转换,要谨慎处理可能的异常,...
本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四舍五入保留两位小数 四舍五入是数学中的一个基本概念,指的是当一个数的小数部分小于等于0.5时,将其...
- `BigDecimal.ROUND_HALF_UP`:四舍五入,向“最接近的邻居”舍入,除非两者都同样接近,此时舍入远离零的方向。 - `BigDecimal.ROUND_HALF_DOWN`:五舍六入,向“最接近的邻居”舍入,除非两者都同样接近,此时...
Java的8大基本数据类型是编程中的核心概念,它们包括整型、浮点型、字符型和布尔型。下面是对这些基本数据类型的详细介绍: 1. **整型**: 包括`byte`, `short`, `int`, 和 `long`。它们分别占用8位、16位、32位和64...
这两个浮点类型不适合用来存储精确的货币值,因为会有四舍五入的问题。 时间日期类型包括TIME、DATE和TIMESTAMP等。TIME类型用于存储时间信息,格式为hh:mm:ss,对应Java中的Time类型。DATE类型用于存储日期信息,...
Math.round() 是 Java 中的数学函数,用于将数字四舍五入。 1.13 构造器是否可以被重写 构造器不能被重写,因为构造器是对象的初始化方法。 1.14 抽象类和接口的区别 抽象类和接口都是 Java 中的抽象类型,但...
3. 数据类型之间的转换:如何将数值型字符转换为数字(Integer、Double),如何将数字转换为字符,如何取小数点前两位并四舍五入。 4. 日期和时间:如何取得年月日、小时分秒,如何取得从1970年到现在的毫秒数,如何...
2. Math.round() 方法:将一个 double 型数据四舍五入为 long 型数据。 3. Scanner 类:用于获取用户的输入。 4. 循环结构:while 循环和 do-while 循环的使用。 5. 判断结构:if-else 语句的使用。 6. 字符串操作:...
为了处理浮点数计算后的精度问题,`MathUtil`类可能包含`round()`方法,用于对结果进行四舍五入,如`int round(double value)`。 7. **最大值和最小值**: 类中可能包含`max()`和`min()`方法来找出两个或多个数值...
如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何猎取某个日期是当月的最终一天 如何格式化日期 5.数组和集合 6.文件和名目(I/O)操作 如何列出某个名...
实型变量在运算中通常不会像整型那样直接溢出,而是进行舍入处理。 10. char类型:'n'表示回车符,'r'表示换行符,char类型在内存中占用16位,所有Unicode字符都可以作为char类型的常量,因此选项B是正确的。 11. ...
3. **四舍五入**: - `rint(double a)`: 返回与参数最接近的整数。返回类型为`double`。 - 示例:`double i1 = 1.623; double i2 = Math.rint(i1);` 4. **取整**: - `round(float a)`: 返回一个最接近的`int`或...
使用`BigDecimal`进行精确的小数运算和四舍五入: ```java BigDecimal bd = new BigDecimal("3.856"); bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(bd); ``` ### 日期和时间操作 #### ...
Math.round方法进行四舍五入,它将浮点数转换为最接近的整数,结果是相同或更接近零的整数。例如,Math.round(-1.5)将返回-1。 5. String不是基础数据类型: Java的八种基本数据类型是byte、short、char、int、...