如何将大数从一个基数转换为另一个基数

时间:2018-09-02 16:23:27

标签: java groovy

我正在尝试将SQL函数转换为Groovy以便在Elasticsearch中使用,但是我仍然停留在这个阶段。考虑到我一生中从未接触过Java或groovy,我在做什么错?

代码

std_scaler = StandardScaler().fit(X_train)
std_X_train = std_scaler.transform(X_train)
std_X_test = std_scaler.transform(X_test)

取自Convert from one base to another in Java

错误

  

java.lang.NumberFormatException:对于输入字符串:“ 8f8f87878f8f8080”
  在java_lang_Integer $ parseInt.call(未知来源)
  在Script1.convertFromBaseToBase(Script1.groovy:2)
  在Script1.run(Script1.groovy:5)

1 个答案:

答案 0 :(得分:2)

8f8f87878f8f8080是一个非常大的数字(十进制为10344635885392199808,因此不能容纳在Integer中。

对于如此大的数字,您将不得不使用BigInteger

public static String convertFromBaseToBase (String str, int fromBase, int toBase){
  return (new BigInteger(str, fromBase)).toString(toBase);
}

工作代码--> https://www.onlinegdb.com/B1mMEcKPX

BigInteger --> https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#toString(int)