【问题标题】:How to convert String variable to int in javascript?如何在javascript中将String变量转换为int?
【发布时间】:2012-08-15 23:12:10
【问题描述】:

将 String 变量的值转换为 int/numeric 变量的正确方法是什么?为什么bcInt 仍然是字符串,为什么isNaN 返回true

bc=localStorage.getItem('bc');
var bcInt=parseInt(bc,10);
var bcInt2=1;
console.log("bc------------>" +bc +" isNaN:" +isNaN(bc)); //isNaN returns true
console.log("bcInt------------>" +bcInt +" isNaN:" +isNaN(bcInt)); //isNaN returns true

bcInt2// isNaN returns false

【问题讨论】:

  • 如果parseInt() 返回NaN,那么您的字符串实际上并不包含值的数字表示。如果您告诉我们“bc”的值是什么,那么也许有人可以提供帮助,但您没有这样做。这个值当然是整个问题的关键。
  • 本地存储项bc包含的值是多少?如果它不是一个数字(空、有字母字符等),这就是我希望看到的。
  • 08-20 18:41:02.880: bc------------>"1" isNaN:true
  • 如果1 周围有双引号字符,那么它将不起作用。
  • Pointy 得到了一点。我在另一个地方使用了 stringify 函数,然后出现了双引号,这就是原因!谢谢大家帮助我。

标签: javascript string int type-conversion numeric


【解决方案1】:

parseInt 仅当您将数字作为第一个字符传递给它时才会返回一个数字。

例子:

parseInt( 'a', 10 ); // NaN
parseInt( 'a10', 10 ); // NaN
parseInt( '10a', 10 ); // 10
parseInt( '', 10 ); // NaN
parseInt( '10', 10 ); // 10

另外,如果您想获取只有数字的字符串,您可以查看+ 运算符。

+'a'; // NaN
+'a10'; // NaN
+'10a'; // NaN
+''; // 0, that's tricky
+'10'; // 10

编辑:根据您的评论,我已经测试了parseInt

parseInt( '08-20 19:41:02.880', 10 ); // 8

你做错了什么。 parseInt 返回所有内容,直到它不是数字。如果第一个不是数字(或找不到任何数字),则返回 NaN

【讨论】:

    【解决方案2】:

    答案是我使用了localStorage.setItem('bc',JSON.stringify(bc)),它在bc 中添加了双引号,因为在这种情况下它已经是一个字符串,这就是parseInt 不起作用的原因。值为""1""

    【讨论】:

    • 我有同样的问题。还是没有解决办法
    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2015-07-09
    • 2017-03-19
    • 2011-07-31
    • 2022-01-02
    相关资源
    最近更新 更多