duktape中怎么把js传下来的字符串转数字,并举例说明
时间: 2023-06-14 20:02:28 浏览: 156
在Duktape中,可以使用全局对象的parseInt()函数将一个字符串转换为整数。具体语法如下:
```c
double parseInt(const char* str, int radix);
```
其中,第一个参数为要转换的字符串,第二个参数为进制数(默认为10进制)。
例如,下面的代码中将一个字符串转换为整数并打印出来:
```c
#include "duktape.h"
#include <stdio.h>
int main(int argc, char *argv[]) {
duk_context *ctx = duk_create_heap_default();
// 将字符串 "123" 压入栈中
duk_push_string(ctx, "123");
// 调用全局对象的 parseInt() 函数将字符串转为整数
double result = duk_to_number(ctx, -1);
// 打印转换后的整数
printf("%g\n", result);
duk_destroy_heap(ctx);
return 0;
}
```
输出结果为:
```
123
```
注意,如果要将一个非数字的字符串转换为数字,parseInt() 函数会返回 NaN。例如,下面的代码中将一个非数字的字符串转换为整数并打印出来:
```c
#include "duktape.h"
#include <stdio.h>
int main(int argc, char *argv[]) {
duk_context *ctx = duk_create_heap_default();
// 将字符串 "hello" 压入栈中
duk_push_string(ctx, "hello");
// 调用全局对象的 parseInt() 函数将字符串转为整数
double result = duk_to_number(ctx, -1);
// 打印转换后的整数
printf("%g\n", result);
duk_destroy_heap(ctx);
return 0;
}
```
输出结果为:
```
nan
```
这说明 parseInt() 函数无法将非数字的字符串转换为数字。
阅读全文