`
meizuishaishai
  • 浏览: 32098 次
社区版块
存档分类
最新评论

java中的整数相除

阅读更多
今天我在J2EE社区,遇到一个人提问:
问题:1 / (n * (n + 1));n从1开始,一直加到1 / (19 * 20),但是在运行过程中,s不会变化
public class Test {
	public static void main(String[] args) {
		double s = 0.0;
		int n = 1 ;
		do{
			s = s + 1 / (n * (n + 1));
			System.out.println(s);
			n = n + 1 ;
			System.out.println(s + "\t" + n);
		}while(n < 20);
		System.out.println(s);
	}
}


以下是运行结果:0.0
0.0 2
0.0
0.0 3
0.0
0.0 4
0.0
......

分析:整数之间的“/”是取整除法,以上的例子中,1 / (n * (n + 1)) 每次的结果都只能是0
          如果想要得到1 / (n * (n + 1))的小数值,那么可以这样写:
	public static void main(String[] args) {
		double s = 0.0;
		int n = 1 ;
		do{
                       int temp = (n * (n + 1));
			s =s +  (double)1 / temp;//表示除完得结果是 double 类型,同样效果的写法有: 1 /( double )temp ; ( double )1 /( double )temp
			System.out.println(s);
			n = n + 1 ;
			System.out.println(s + "\t" + n);
		}while(n < 20);
		System.out.println(s);
	}


备注:
(1)float和double都有固定的存储的格式,这些格式都有国际标准,不是想让它们有几位小数就有几位小数的;
(2)打印格式属于数据显示问题,而不是数据存储的问题,完全可以使用一般的float或double的存数据,然后显示时固定打印2位小数,方法是使用相关的格式化数据的类(如DecimalFormat)把数值格式化成想要格式的字符串。
分享到:
评论

相关推荐

    Java中的相除(/)和取余(%)的实现方法

    在 Java 中,相除运算符 / 的实现方法是将两个操作数相除,并将结果作为整数商返回。例如,`int a = 13 / 5;` 语句将返回 2,因为 13 除以 5 的结果是 2. 取余运算 在 Java 中,取余运算符是 %,它可以对两个整数...

    《JAVA程序设计》期末考试试题汇总及答案.doc

    因此,表达式的计算结果为`2 / 3`,由于Java中整数相除结果为整数,故结果为0。 4. **假设x = 5,y = 10,那么x 和x &gt;= y的逻辑值分别为:** - `true`和`false` 5. **抽象方法和最终方法的定义:** - 抽象...

    JAVA样卷及分析

    ` 这行代码中,根据运算优先级,先进行除法运算 `11 / 2` 结果为5(因为Java中整数相除向下取整),然后进行加法运算 `d + 5` 即 `10 + 5` 结果为15。最后乘法运算 `d *= 15` 即 `d = 10 * 15` 得到结果为150。因此...

    Java程序设计笔试期末试卷试题及答案2套.docx

    7除以3的结果为2,因为Java中整数相除取整。 - C、2.33333:错误。结果是整数。 - D、3:错误。不是整数除法的实际结果。 **3. 以下Java程序代码片段的输出结果为(D)** ```java int sum = 19; String min = sum...

    JAVA辗转相除法求最大公约数

    已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c),其中用(a,b)来表示a和b的最大公约数。(证明过程请参考其它资料) 例:求 15750 与27216的最大公约数。 解: ∵27216=15750×1+11466 ∴(15750,27216)=...

    Java中使用辗转相除法求最大公约数

    在编程领域,特别是Java语言中,求解两个整数的最大公约数(Greatest Common Divisor,简称GCD)是一项常见的任务。辗转相除法,又称欧几里得算法(Euclidean Algorithm),是一种高效的求解最大公约数的方法。该...

    Java编写的大整数四则运算

    ### Java编写的大整数四则运算:深入解析与理解 #### 概述 在计算机科学领域,处理大整数运算是一项挑战,特别是在超出标准整数类型(如`int`或`long`)所能表达的范围时。Java语言通过内置的`BigInteger`类提供了...

    leetcode第三题java-DivideTwoIntegers:LeetCode问题29两个整数相除

    两个整数相除 Java 中的实现。 两种解决方案。 包括测试脚手架。 留下第三个解决方案作为 WORK IN PROGRESS。 如果对我的方法感兴趣,请阅读我博客中的以下帖子: 希望你喜欢。 如果您有意见或问题,请在我博客的...

    辗转相除法(算法源代码)

    在提供的压缩包文件"辗转相除法"中,很可能包含了不同编程语言(如C++, Python, Java等)的辗转相除法算法实现示例,供学习者参考和实践。通过理解并亲手实现这些代码,可以帮助你深入理解这个经典算法的运作机制,...

    两数相除(java代码).docx

    本问题的目标是设计一个函数`divide`,该函数接收两个整数参数`dividend`和`divisor`,并返回它们相除的结果。需要注意的是,在实现过程中不能使用乘法、除法或取模运算符。 #### 二、解决方案 为了解决这个问题,...

    实验 1JAVA 语言基础-顺序、选择、循环程序设计

    提示:Java中,两个整数相除,结果还是整数,小数部分被去掉。例如,5/4 等 于 1(而不是 1.25 ),10/4 等于2(而不是 2.5)。如果想得到有小数部分的精确结果,进 行除法运算的两个值之一必须是一个具有小数点的数值。...

    Java中使用的常用数学类

    在Java编程语言中,处理数学计算是常见的任务。为了应对浮点数运算可能出现的精度问题,Java提供了`java.math`包,其中包含了一些用于精确数学计算的类,比如`BigDecimal`。本文将深入探讨Java中常用的数学类以及...

    Java 面试题全集

    程序中使用了辗转相除法(也称欧几里得算法)来求最大公约数,通过一个循环结构不断将除数和余数互换,直至余数为0,此时的除数即为最大公约数。最小公倍数可以通过两数之积除以它们的最大公约数来求得。 以上程序...

    Java解惑(中文+书签).pdf

    在Java中,取余操作符(%)用于计算两个整数相除的余数。例如,`i % 2` 将会返回整数`i`除以2后得到的余数。但在处理负整数时,该操作符的返回值会保留与左侧操作数相同的符号。这意味着,对于负奇数,`i % 2`的结果...

    74.072.JAVA基础教程_Java基本语法-算术运算符的练习(74).rar

    5. 取余运算符 (%): 返回两个整数相除后的余数。例如,`int a = 10; int b = 3; int c = a % b;` 这里,c的值将是1。 6. 自增运算符 (++): 用于增加变量的值。有两种形式:前缀自增(++var)和后缀自增(var++)。...

    JAVA 上机实践实验6算术测试

    2. **整数除法**:在JAVA中,当两个整数相除时,结果会被截断为整数,丢弃小数部分。例如,`int a = 7 / 3;` 结果a将是2,而不是2.333。 3. **浮点数运算**:JAVA的浮点数运算涉及到double和float类型,它们可以...

    quotient_quotient_java_remainder_源码.rar

    `/`运算符用于执行除法操作,当两个整数相除时,它会返回一个浮点数结果,除非两个操作数都是整数,这时结果会被截断为整数(向下取整)。例如,`5 / 2`将返回`2`,而不是`2.5`。如果至少有一个操作数是浮点数,那么...

    求最大公约数最小公倍数的java程序类的继承.doc

    本文将从Java编程的角度,总结最大公约数和最小公倍数的计算方法,并探讨Java中类的继承机制。在这个实验中,我们将编写一个Parent类,包含一个计算最大公约数的方法f(int a, int b),然后编写一个Child类,继承自...

    quotient_quotient_java_remainder_

    在Java中,`%`运算符用于获取两个整数相除后的余数。继续上面的例子: ```java int remainder = dividend % divisor; // remainder will be 3 ``` 这里,15除以4的余数是3,因为15减去3个4(12)之后,剩下3。 ...

    热-辗转相除法求最大公约 使用java求解

    辗转相除法,也称为欧几里德算法,是一种用于求解两个整数的最大公约数的方法。该算法基于以下原理:两个整数a和b的最大公约数等于b和a除以b的余数的最大公约数。通过反复应用这个原理,可以逐步缩小两个整数的范围...

Global site tag (gtag.js) - Google Analytics