【问题标题】:How do I make Java display a display a quotient and a remainder?如何让 Java 显示一个商和一个余数?
【发布时间】:2017-10-19 14:10:49
【问题描述】:

我似乎只能让它显示商和小数。例如,如果我将 9 除以 2,我将得到 4.5。但是,我想让它成为 4r 1。我当前的代码是 导入 java.util.Scanner;

public class Convert{   

 public static void main(String [] args){      
  Scanner reader = new Scanner(System.in);      

  double dividend;      
  double divisor;      
  double quotient;           

  System.out.print("Enter the dividend ");    
  dividend = reader.nextDouble();     

  System.out.print("Enter the divisor ");       
  divisor = reader.nextDouble();    

  quotient = dividend/divisor;          

  System.out.print("The quotient is ");    
  System.out.println(quotient);       
 } 
}

【问题讨论】:

  • 双倍除法没有余数。
  • 你需要明确计算。
  • 感谢及时回归 ;-)

标签: java


【解决方案1】:

简单:那么你使用了错误的类型

您似乎想对整数个数进行操作。

那么不要使用浮点数,而是使用int或long等类型。

因为不同的类型对相应的操作意味着不同的语义,例如参见here。除此之外,您还需要研究 % 或 modulo 运算符(请参阅there)。

【讨论】:

  • 基本就够了:)
  • 除以整数类型仍然不会返回余数 - 只是除以小数类型的舍入结果。
  • @AlexQuilliam 正确,我本可以更准确地说。我相应地增强了我的答案。
【解决方案2】:

首先,不要使用像floatdouble 这样的小数类型,使用像intlong 这样的整数类型。其次,要获得提醒,您需要使用模运算符 (%)。它是这样工作的:

int i = 5 % 2; 等于 1。

int i = 13 % 7; 等于 6。

【讨论】:

  • 使用short 没有意义:当你分割它们时,短裤会扩大到(至少)int
  • 这很有趣。我不知道。
  • JLS:这是“二进制数字提升”位。
【解决方案3】:

您可以将所有值更改为 int

然后也使用取模运算符(%)得到余数

int dividend;
int divisor;
int quotient;
int remainder;
String remainderResult;

System.out.print("Enter the dividend ");
dividend = reader.nextInt();

System.out.print("Enter the divisor ");
divisor = reader.nextInt();

quotient = dividend / divisor;
remainder = dividend % divisor;

remainderResult = (remainder != 0) ? ", remainder " + remainder : "";

System.out.println("The quotient is " + quotient + remainderResult);

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 2012-08-04
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多