java - 将 double 转换为 BigInteger

标签 java floating-point biginteger bigint

如何尽可能准确地将 double 转换为 BigInteger? BigInteger 没有 valueOf(double) 方法。它确实有一个 valueOf(long) 方法,但是通过 long 进行转换,会破坏 2^64 范围之外的任何值,特别是我试图获取像 1e100 这样的大数字,以将其相应的整数值转换为 16 或浮点精度允许如此重要的数字。

最佳答案

您可以将 double 转换为 BigDecimal,然后转换为 BigInteger:

BigInteger k = BigDecimal.valueOf(doublevalue).toBigInteger();

关于java - 将 double 转换为 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48785161/

相关文章:

java - 如何从 tomcat 提供静态内容

bash - 如何在 bash 脚本中回显 float ,包括点前的前导 0

c - 浮点值、运算符和函数有多不可靠?

c++ - Float64 转字符串

java - 如何在不进行模块化运算的情况下将 Java BigInteger 提升到 BigInteger 的能力?

java - 使用编码为 16 进制的字符串创建 BigInt

java - JSP 页面加载速度太慢

java - 下载 Eclipse 的源代码

C++ gdb 错误读取变量 : Cannot access memory at address

java - 对象框重复文件异常