像 Kotlin 一样将 BigNumber 转换为 Int

问题描述

我在 Kotlin 中有以下内容可以将 BigInteger 转换为普通的 integer

    val bigIntDiv = bigIntVal?.div(BigInteger.valueOf(429496))
    val resultInt = bigIntDiv?.toInt() //This line converts the big Interger down to regular integer

如何在 javascript 中实现相同的转换。

我正在使用 BigNumber.jshttps://github.com/MikeMcl/bignumber.js/,但我找不到从 BigNumber 中取回常规整数的方法

这是我目前拥有的 BigNumber.js 库:

let bigIntVal = new BigNumber("5ACDBB4CC493D909F423D779C2C55E7381DFAE6547DCEFE5712F",16)

现在我想取回上面 Kotlin 等效代码中显示的常规整数?

这样:

let regularInteger = bigIntVal.toInt(); //would be the same value as returned from the Kotlin's end?

对于一个样本 bignumber

5.09632306328228901945340839021510597564609217303391975753746718457743300101444483767019949e

我尝试使用 BigNumber.js 库进行以下操作:

let initial = new BigNumber("5.09632306328228901945340839021510597564609217303391975753746718457743300101444483767019949e",16);
let workingVal = initial.toNumber(); //This gives 5.096323063282289e+70,which is not what I want

当我在 kotlin 中编写类似的代码时,kotlin 给了我想要的

    val resultInt = initial?.toInt() //Kotlin gave me -1879845894 which is great to work with.

那么,我如何使用 BigNumber.js 库实现相同的目标 谢谢。

解决方法

这是一个将 bigNumber 转换为原始 int 的快速示例:

let bigIntVal = new BigNumber("5ACDBB4CC493D909F423D779C2C55E7381DFAE6547DCEFE5712F",16)
let bigIntValToInt = bigIntVal.toNumber()

// double check
console.log(typeof bigIntVal);
console.log(typeof bigIntValToInt);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...