如何在JavaScript中将十进制128值转换为数字?
我正在从MongoDB数据库()查询数据。有些值以如何在JavaScript中将十进制128值转换为数字?,javascript,mongodb,Javascript,Mongodb,我正在从MongoDB数据库()查询数据。有些值以小数128格式存储。问题是返回的是以下对象而不是数字: value: Decimal128 { _bsontype: 'Decimal128', bytes: <Buffer 80 7c 45 c7 c6 02 00 00 00 00 00 00 00 00 3e 30> } 值:小数128{ _b子类型:“小数128”, 字节: } 我还没有找到将这个对象转换为人类可读的数字(原生JavaScript 64位数字)的函数
小数128
格式存储。问题是返回的是以下对象而不是数字:
value: Decimal128 {
_bsontype: 'Decimal128',
bytes: <Buffer 80 7c 45 c7 c6 02 00 00 00 00 00 00 00 00 3e 30>
}
值:小数128{
_b子类型:“小数128”,
字节:
}
我还没有找到将这个对象转换为人类可读的数字(原生JavaScript 64位数字)的函数。有人知道如何做到这一点吗?你说的答案不适用,因为你“没有使用mongoose,而是使用本地驱动程序。”我必须承认我没有进入mongoose或MongoDB。我相信你的话,这个问题的答案在这里不适用 但他们的概念确实如此。's还有
toString
,返回数字的字符串版本(尽管文档中没有明确说明),您可以通过将其转换为数字。很明显,转换是有损的(这是不可避免的),但我想你知道这一点
因此,假设dec
包含以下数字:
const num = +dec.toString(); // Unavoidably, this is a lossy conversion
这是在节点中还是在浏览器中?@matthew-e-brown是的Node@T.J.Crowder是的,我也看到过这个问题。问题是我使用的不是mongoose,而是本机驱动程序。所以答案没有帮助me@T.J.Crowder,不,你读对了一切:),这是我的错,因为我指的是假对象。你能把它作为一个答案贴出来,这样我就可以接受了吗?@Simon-:-)完成了!我已取消删除我简短发布的答案。很高兴这有帮助!