java - 为什么这个程序不允许我划分

标签 java

我注意到我找不到很大的数字。我决定使用 biginteger 来解决这个问题,但它不允许我将它们分开。我还将其中一个除法变成了 big int 除法方法,但它仍然给了我一个危险信号。谁能帮我弄清楚为什么会发生这种情况?除法也不起作用。我将其中一个除法改为除法,其余保留为常规除法。

//This class test the recursive method to see how many digits are in a number
public class TestDigits {

public static void main(String[] args) {// main method to test the nmbDigits method
    Scanner c = new Scanner(System.in);
    try{
    System.out.println("Input an integer number:");
     BigInteger number = c.nextBigInteger() ;
    System.out.println(nmbDigits(number));}
    catch (InputMismatchException ex){
    System.out.println("incorrect input, integer values only.");
System.exit(1);}}


static BigInteger nmbDigits(BigInteger c) {//nmbDigits method takes input from user and returns the number of digits
    int digits = 0;
    if (c.divide(10) == 0){
        digits++;}
      else if (c / 10 != 0){
        digits++;
        BigInteger count = c/10;
        do {
            count = count/10;
            digits++;}
          while (count != 0);}
    return digits;}
}

最佳答案

您不能在 BigInteger 的实例上使用除法运算符 /。该运算符仅适用于原始数值类型。这就是 BigInteger 类具有 divide 方法的原因。

BigInteger result = c.divide(new BigInteger("10")); 可以。

关于java - 为什么这个程序不允许我划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25432714/

相关文章:

java - 彭博社无法启动 session

java - 在 Java 中复制大型数组的最有效方法

java - Gmail 应用程序如何获取有关新电子邮件的信息?

java - Java 8 Streams 中的可变参数

java - 在 JUnit Test 子类中引用 protected 变量时获取 NullPointerException

java - 如何从JavaFX中的二级线程获取更新消息/属性?

java - 从 1.7 升级到 2.0 后,GWT 加载模块时出错

java - 如何调试 GWT 应用程序?

java - 安卓 SQLite : Data being added again and again

java - Checkmarx 显示代码存在二阶注入(inject)风险