java - 处理大量数据

标签 java bigdecimal

当我在 Java 中进行以下计算 (97 ^ 23) mod 187 时:

double ret = (Math.pow (97, 23))% 187;

ret值为74(Math.Pow (97, 23)) 的值为 4.963064143419832E45;

我的问题如下:表达式 (97 ^ 23) mod 187 = 58 的值。尝试做windows计算器。我尝试过使用 BigDecimal 但仍然无法获得我需要的值。

在Windows计算器中输入(97 ^ 23),它会返回4.9630641434198319969863989680919 +45,而且更加精确。

如果有人可以帮助我,非常感谢!

最佳答案

模块化功能在 BigInteger 类中实现:

BigInteger a = new BigInteger("97");
BigInteger x = new BigInteger("23");
BigInteger m = new BigInteger("187");
BigInteger result = a.modPow(x, m); // 97^23 % 187

要获取 int 形式的结果,您可以使用 intValue() 方法。

关于java - 处理大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256378/

相关文章:

java - 希望添加一个计算器来计算食品应用程序今天的卡路里

Java:我的编译器说我的 printf 语句之一已损坏,我不明白为什么

java - %n 和\n 在 Java 中打印新行的区别

java - 替换格式化值中 DecimalFormat 的分组分隔符

java - 使用jeval时如何避免精度损失?

java - 当我选择带有 AS 关键字的常量时,PostgreSQL 返回 java.sql.Types.OTHER

java - 关于Java输入字符串过滤器

java - 将 Bigdecimal 和 int 相乘产生错误

java - BigDecimal 符号/括号

json - 如何避免circe JSON序列化中的科学记数法