java - 整数太长 Java

标签 java

<分区>

  public static void gramstoAtoms()
  {
   System.out.println("Enter Amount of grams");
   Scanner keyboard = new Scanner(System.in);
   long x = keyboard.nextLong();
   System.out.println("Enter Unit Grams");
   long y = keyboard.nextLong();
   long result = x/y;
   long answer = result*60200000000000000000000;
   System.out.println(answer + "Atoms");
  }

如何更改此代码以免出现整数太长错误?

最佳答案

只需使用 BigInteger 而不是 long

BigInteger bi=new BigInteger("6020000000000000000000");

对于你的方法:

public static void gramstoAtoms()
  {
   System.out.println("Enter Amount of grams");
   Scanner keyboard = new Scanner(System.in);
   String x = keyboard.nextLine();
   System.out.println("Enter Unit Grams");
   String y = keyboard.nextLine();
   BigInteger result = new BigInteger(x).divide(new BigInteger(y));
   BigInteger answer = result.multiply(new BigInteger("60200000000000000000000"));
   System.out.println(answer + "Atoms");
  }

如果您的 xy 很小,您可以将它们与简单的 long 一起使用,但是当乘以 602......0000 时使用大整数

关于java - 整数太长 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16462367/

相关文章:

java - 将字节数组转换为十进制

Java四面体表面积和体积代码

java - 16位偏移和24位偏移是什么意思?我如何使用java进行这样的计算

java - 在 GWT 中将最终类变量设为静态

java - 如何随机奖励应用程序使用积分

JavaFX - 如何在 fxml Controller 初始化期间设置值

java - 如何在旧版 Java 应用程序上使用 com.opensymphony.oscache 查找内存泄漏

java.lang.NullPointerException : Attempt to invoke virtual method on a null object reference

java - 为什么 Rectangle2D.create Union() 不适合我?

java - 将字符串类型日期更改为日期字符串