Google apps script 如何将字符串转换为数字

Google apps script 如何将字符串转换为数字,google-apps-script,Google Apps Script,我不知道如何将这个字符串82144251转换成一个数字 代码: 如果我尝试下面的代码,.toFixed()函数将我的数字转换回字符串 问题更新: 我正在使用谷歌应用程序脚本编辑器,这一定是问题所在 num = parseInt(num).toFixed() // if I just do parseInt(num) it returns 8.2144251E7 var num=“82144251”; num=parseInt(num).toFixed() console.log(num,ty

我不知道如何将这个字符串
82144251
转换成一个数字

代码:

如果我尝试下面的代码,
.toFixed()
函数将我的数字转换回字符串

问题更新: 我正在使用谷歌应用程序脚本编辑器,这一定是问题所在

num = parseInt(num).toFixed() // if I just do parseInt(num) it returns 8.2144251E7
var num=“82144251”;
num=parseInt(num).toFixed()
console.log(num,typeof num);//一串
num=parseFloat(num);

console.log(num,typeof num);//数字
var intNum=parseInt(“82144251”,10);//intNum是数字

您可以使用一元运算符“+”或parseInt(number,10)或number()将字符串转换为数字

检查这些代码片段

var num1a=“1”;
控制台日志(+num1a);
var num1b=“2”;
num1b=+num1b;
console.log(num1b);
var num3=“3”
console.log(parseInt(num3,10));
var num4=“4”;

控制台日志(编号(num4))您似乎正在此处查找
Number()
功能:

var num = "82144251"; // "82144251"
var numAsNumber = Number(num); // prints 82144251
typeof num // string
typeof numAsNumber // number
您可以在此处阅读有关
Number()
的更多信息:

希望这有帮助

没有问题是愚蠢的

快速回答: 要将字符串转换为数字,可以使用



执行
num=+num
实际上与执行
num=num*1相同
如果需要,它会将a中的值转换为数字,但之后不会更改值。

我使用num-0,因为它更易于内联使用。

函数
.toFixed()
实际上会返回字符串,不是一个数字。还要注意,
8.2144251E7
82144251
@PavelValeriu的值完全相同。为什么要调用
.toFixed()
parseInt()
返回一个数字,这就是您所需要的。我不明白为什么
parseInt
的结果不是您想要的。@PavelValeriu:什么问题?“parseInt(num)返回8.2144251E7”?-不,它不起作用,但结果是
8.2144251E7
而不是
82144251
@PavelValeriu这不是我运行代码时的结果。你运行代码段了吗?它在这里工作,但请检查我更新的问题。非常感谢。虽然
+num
将字符串转换为数字是正确的,但我个人不会使用它。看起来,
+
总是一个意外的遗留物……这可能会导致与
+=
@Scott Marcus之间的混淆。我认为+num一点也不令人困惑。这是一个用更少代码更改类型的足够方法。它在这里工作,但请检查我更新的问题。谢谢大家!@ChrisHaugen我没有说
+num
令人困惑,我说
num=+num
很容易与
num+=num
混淆。那么当字符串包含非数字字符时会发生什么呢?它的计算结果应该是NAN,但是,您的问题没有指定它需要处理非数字。只是
num=parseInt(num).toFixed()
返回一个带有E的字符串。人们普遍认为使用
Number()
string()
Boolean()
构造函数是一种不好的做法。嘿@ScottMarcus感谢大家的提醒。我们每天都在学习新的东西:)你能帮我理解为什么会这样吗?@ScottMarcus为什么
Number()
是个坏习惯
parseInt
Number
有不同的用途。如果我想接受
100px
或类似的输入,那么
parseInt
将非常有用,如果我想确保字符串只包含数字(包括尾随空格和前导空格,
e
符号和十六进制),那么
Number()
会给我正确的结果。@Dave Cooper,因为它们有点反模式。它们是构造函数,您不必与
new
一起使用,我们还有其他更直观的方法来完成这些工作。@daveOper
Number()
在后台创建一个Number对象,而不仅仅是坚持使用一个类型,这(取决于实现)会产生更多的开销,并且很容易与
newnumber()混淆
。这同样适用于
String()
Boolean()
var num = "82144251"; // "82144251"
var numAsNumber = Number(num); // prints 82144251
typeof num // string
typeof numAsNumber // number
var num = "82144251";

num = +num;