在Java中进行取整,尤其是四舍五入取整还有点麻烦。
下面是我根据网上的一些解答整理的三种取整运算(包括截尾取整,四舍五入,凑整),类似于面向过程语言(如C和Basic)中的取整函数(不过在Java中它叫类的方法,“类名.方法名(参数)”的运算都是类的静态方法)。
其中,注释掉的那段是在网上查到的有的朋友认为正确的四舍五入的取整方法,但是经过我的实验却是不正确的四舍五入的取整方法。
TestGetInt.java 源代码
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class TestGetInt{
public static void main(String[] args){
double i=2, j=2.1, k=2.5, m=2.9;
System.out.println(”舍掉小数取整:Math.floor(2)=” + (int)Math.floor(i));
System.out.println(”舍掉小数取整:Math.floor(2.1)=” + (int)Math.floor(j));
System.out.println(”舍掉小数取整:Math.floor(2.5)=” + (int)Math.floor(k));
System.out.println(”舍掉小数取整:Math.floor(2.9)=” + (int)Math.floor(m));
/* 这段被注释的代码不能正确的实现四舍五入取整
System.out.println(”四舍五入取整:Math.rint(2)=” + (int)Math.rint(i));
System.out.println(”四舍五入取整:Math.rint(2.1)=” + (int)Math.rint(j));
System.out.println(”四舍五入取整:Math.rint(2.5)=” + (int)Math.rint(k));
System.out.println(”四舍五入取整:Math.rint(2.9)=” + (int)Math.rint(m));
System.out.println(”四舍五入取整:(2)=” + new DecimalFormat(”0″).format(i));
System.out.println(”四舍五入取整:(2.1)=” + new DecimalFormat(”0″).format(i));
System.out.println(”四舍五入取整:(2.5)=” + new DecimalFormat(”0″).format(i));
System.out.println(”四舍五入取整:(2.9)=” + new DecimalFormat(”0″).format(i));
*/
System.out.println(”四舍五入取整:(2)=” + new BigDecimal(”2″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”四舍五入取整:(2.1)=” + new BigDecimal(”2.1″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”四舍五入取整:(2.5)=” + new BigDecimal(”2.5″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”四舍五入取整:(2.9)=” + new BigDecimal(”2.9″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”凑整:Math.ceil(2)=” + (int)Math.ceil(i));
System.out.println(”凑整:Math.ceil(2.1)=” + (int)Math.ceil(j));
System.out.println(”凑整:Math.ceil(2.5)=” + (int)Math.ceil(k));
System.out.println(”凑整:Math.ceil(2.9)=” + (int)Math.ceil(m));
System.out.println(”舍掉小数取整:Math.floor(-2)=” + (int)Math.floor(-i));
System.out.println(”舍掉小数取整:Math.floor(-2.1)=” + (int)Math.floor(-j));
System.out.println(”舍掉小数取整:Math.floor(-2.5)=” + (int)Math.floor(-k));
System.out.println(”舍掉小数取整:Math.floor(-2.9)=” + (int)Math.floor(-m));
System.out.println(”四舍五入取整:(-2)=” + new BigDecimal(”-2″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”四舍五入取整:(-2.1)=” + new BigDecimal(”-2.1″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”四舍五入取整:(-2.5)=” + new BigDecimal(”-2.5″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”四舍五入取整:(-2.9)=” + new BigDecimal(”-2.9″).setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println(”凑整:Math.ceil(-2)=” + (int)Math.ceil(-i));
System.out.println(”凑整:Math.ceil(-2.1)=” + (int)Math.ceil(-j));
System.out.println(”凑整:Math.ceil(-2.5)=” + (int)Math.ceil(-k));
System.out.println(”凑整:Math.ceil(-2.9)=” + (int)Math.ceil(-m));
}
}
分享到:
相关推荐
在JAVA编程语言中,开发一个计算器程序是一项基础且有趣的任务,可以帮助初学者更好地理解面向对象编程的概念。...对于初学者来说,这是一个很好的实践项目,有助于深入理解JAVA语言的特性和编程技巧。
在四则运算中,根据输入的数字类型,可能需要进行类型转换,例如将`int`转换为`double`以执行精确的浮点运算。 接下来,我们将探讨运算符的使用。在Java中,加法运算符是`+`,减法是`-`,乘法是`*`,除法是`/`。...
在Java编程语言中,四则运算(加法、减法、乘法和除法)是基本的操作,它们构成了计算的基础。下面将详细讲解如何在Java中实现这些运算,并结合给出的"四则运算JAVA程序"进行分析。 1. **基础语法** Java中的四则...
【Java语言概述】 Java语言是面向对象的编程语言,它具备以下主要特点: 1. 面向对象:Java强调对象的使用,类是对象的模板,对象是类的实例,实现了对客观事物的抽象。 2. 简单:Java简化了C++的一些复杂特性,如...
2. **类型转换与浮点数运算**:Java中整数除法会向下取整,因此`1.0 + x/2`的结果会被转换为整数部分,如果x等于53,那么结果会是27,而不是带有小数点的27.5。因此,答案可能是A.27.0。 3. **变量分类**:在Java...
在Java编程语言中,处理数学表达式和基本的算术运算是一项常见的任务。"calculate.rar_java表达式运算" 提供的资源可能是一个简单的计算器程序,它支持加法、减法、乘法和除法,以及更复杂的表达式计算。下面我们将...
该Java程序主要实现了一个简单的图形界面计算器功能,能够完成基本的四则运算,并且预留了扩展高级功能(如阶乘、正弦、余弦和指数计算)的空间。通过使用Java Swing框架来构建用户界面,这个程序不仅具备了良好的...
在Java编程语言中,实现基本的数学运算如加法、减法、乘法和除法是相当直观的。这些操作可以直接在整数、浮点数或其他数字类型之间进行。下面我们将详细探讨如何在Java中实现这些基本的算术运算。 1. **基本数据...
### Java语言程序设计知识点概述 #### 1. Java 语言的特点 - **可移植性**:Java 语言通过使用虚拟机(JVM)确保了跨平台的兼容性。这意味着只要安装了相应的 JVM,Java 程序就可以在任何平台上运行。 - **强类型...
### JAVA语言程序设计第...综上所述,JAVA语言程序设计第六版第三章的编程练习涵盖了基本的输入输出、数据类型转换、逻辑判断、数学运算以及随机数生成等多个核心概念,对初学者理解和掌握JAVA编程具有重要的实践意义。
《JAVA语言程序设计》期末考试试题涉及了Java编程的基础概念,包括字节码文件的扩展名、运算符优先级、访问控制符、方法调用、类的静态成员、Unicode编码、逻辑运算、抽象方法和接口、数组操作以及对象的toString...
2. **浮点数运算**:在Java中,整数除法会返回整数部分,因此`x/2`会得到26,而与1.0相加后会向下取整,结果为26.0,不是27.5。所以答案是A。 3. **成员变量与局部变量**:在类A中,`x`是实例变量,`y`是类变量...
以上就是Java语言基础作业中涉及的关键知识点,包括基本的数学运算、逻辑控制、字符串处理、递推序列、逻辑推理以及优化算法等。在解决这些问题时,需要深入理解Java语法和编程思想,同时结合数学知识和逻辑推理能力...
12. 表达式`-4>>1`是带符号右移运算,相当于除以2并向下取整,结果为-2。 13. 使用`static`修饰的变量是类变量,属于类本身,而非类的实例。 14. 布尔类型数组元素的默认初值是`false`。 15. Swing中的面板`JPanel`...
Java语言与编程第七章主要探讨了工具类和算法,其中工具类是Java编程的重要组成部分,提供了丰富的功能,便于开发者高效地编写程序。本章重点介绍了Java类库的结构以及`java.lang`包中的常用类。 Java类库是系统...
Java语言程序设计期末考试题及答案涵盖了Java编程的基础知识,包括语法、运算符、类与对象、访问控制、方法、包、数组以及继承等概念。以下是相关知识点的详细说明: 1. **字节码文件扩展名**:Java源代码文件(....
Java是一种广泛使用的编程语言,尤其在游戏开发领域中也有其一席之地。这些"几个很不错的Java游戏源代码"提供了一次深入理解Java编程、游戏逻辑以及核心Java知识的绝佳机会。下面,我们将详细探讨这些游戏源代码所...
- **简单性**:Java语言语法简洁明了,去除了C++中的一些复杂特性,如指针和多继承。 - **安全性**:Java提供了多种内置安全措施,如异常处理机制和沙箱模型。 - **平台独立性**:通过Java虚拟机(JVM),Java程序...
在Python 3中,除法 `/` 总是返回一个浮点数,而地板除法 `//` 返回最接近的整数(向下取整)。取模 `%` 操作返回除法的余数。 8. **位运算** Python支持位运算符,如按位与 `&`, 按位或 `|`, 按位异或 `^`, 左移...