首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用napi_value N函数检查napi_number类型为整数或十进制的node.js,

如何使用napi_value N函数检查napi_number类型为整数或十进制的node.js,
EN

Stack Overflow用户
提问于 2019-10-28 06:14:03
回答 1查看 841关注 0票数 0

如何检查给定的napi_value类型napi_number是一个整数十进制(一个带有小数值的数字),使用node.js本机N函数。看起来在N中没有isInt()或isDouble()等效函数(我们也不想使用V8函数调用)。让我们考虑这样一个场景:通过传递一个参数作为参数,从f1()调用JavaScript中的本地addon函数,如代码段所示。

代码语言:javascript
复制
let obj = { n1: 123, n2: 123.45 };
myaddon.f1( obj );

本机函数f1()希望通过调用最佳拟合值提取native函数来提取与键、n1、n2相关联的值。例如,要提取n1的值,最好使用其中的一个,同样,对于n2double是一个更好的选择。

代码语言:javascript
复制
napi_get_value_double
napi_get_value_int32
napi_get_value_uint32
napi_get_value_int64

不幸的是,我找不到任何N函数来验证导数的napi_number属性.你有没有遇到过类似的情况,如果是的话,你是如何解决这个问题的?

https://nodejs.org/api/n-api.html

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 21:58:45

节点-addon-api团队已经打开了有关此特性的请求,他们提供了一个听起来合乎逻辑的答案。我想和这个社区分享这个答案,这样可以帮助其他人进行类似的查询。以下是节点-addon-api团队的答案。

在用数字处理JavaScript时,重要的是要知道JavaScript中的所有数字都是双精度64位IEEE 754值(尽管一些引擎(比如v8 )在小整数上可能有额外的表示,但在ECMA规范中没有这样的定义,也无法在JavaScript中确定这些类型的数字)。 napi_get_value_{double,int32,uint32,int64}只是将这些值转换为它想要的值。在转换过程中可能会出现精度损失。如果在这种情况下需要确定的数字,则使用BigInt代替。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58586425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档