Javascript Nan错误:将字符串解析为int
Javascript Nan Error: parsing strings to ints
引用
如何在javascript中将字符串转换为float?jQuery计算NaN
目标
从用户处获取两个数字输入值。将第二个数字除以第一个数字。将结果乘以100,以百分比表示。将每个数字和结果添加到单独的列表中。通过onClick命令调用函数getTextInput((。
背景
我主要使用Java;我目前在一个数据结构班(CS二年级学生(。我的熟练程度是中等的。我对javascript非常熟悉。
问题
NaN结果。我尝试了多种方法来完成这项任务;我解析了两个输入值并将它们分配给新的变量,并将两个初始字符串输入解析为浮点值。然而,我仍然在将这两个类型为int或string的数字的结果解析为浮点值时遇到问题。我应该解析为int类型参数的浮点值吗?当我将字符串值转换为int值时,程序将不接受输入值并崩溃。为什么会发生这种情况?我看了几个相关的帖子,但找不到任何能提供我想要的信息的东西。最好的方法是什么?非常感谢任何帮助或指导。谢谢
-
注:整个代码张贴在最底部。
方法1-已将两个字符串解析为浮动。'当我将percentOfNumbers和percentageList打印到控制台时,NaN'结果。
var num1=document.getElementById("numString1"(;var num2=document.getElementById("numString2"(;
percentOfNumbers=parseFloat(num2/num1*100(;percentageList.push(percentOfNumbers(;percentOfNumbers.value=";
//将num1添加到List1List1.push(num1.value(;num1.value=";
//将num2添加到List2List2.push(num2.value(;num2.value=";
方法2-将每个文本输入解析为int值,将结果解析为float值。'当我将percentOfNumbers和percentageList打印到控制台时,NaN'结果。
var num1=document.getElementById("numString1"(;var num2=document.getElementById("numString2"(;
var num1Parsed=parseInt(num1(;var num2Parsed=parseInt(num2(;
percentOfNumbers=parseFloat(num2Parsed/num1Parsed*100(;percentageList.push(percentOfNumbers(;percentOfNumbers.value=";
//将num1添加到List1List1.push(num1Parsed.value(;num1Parsed.value=";
//将num2添加到List2List2.push(num2Parsed.value(;num2Parsed.value=";
//示例输入值,2000用于num1,2233用于num2
//完整代码
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
--><!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script>
// separate lists for repeat user input values for num1, num2, and percentageOfNumbers
var List1 = [];
var List2 = [];
var percentageList = [];
var percentOfNumbers = 0;
var num1Parsed = 0;
var num2Parsed = 0;
function getTextInput() {
// retrieve two numbers of type 'String' from user and assign to appropriate var
var num1 = document.getElementById("numString1");
var num2 = document.getElementById("numString2");
// parse each string input number into an int
num1Parsed = parseInt(num1);
num2Parsed = parseInt(num2);
// divide second number by first number
// parse result and assign to percentOfNumbers var
// add percentOfNumbers value to percentageList
// reassign percentOfNumbers to ""
percentOfNumbers = (num2Parsed/num1Parsed * 100);
percentageList.push(percentOfNumbers);
percentOfNumbers.value = "";
// add num1 to List1
List1.push(num1Parsed.value);
num1Parsed.value = "";
// add num2 to List2
List2.push(num2Parsed.value);
num2Parsed.value= "";
}
</script>
</head>
<body>
<input id="numString1" type="text" name="input1" value="" />
<input id="numString2" type="text" name="input2" value="" />
<input id="inputField" type="button" name="search" value="compute" onClick="getTextInput();" />
</body>
</html>
num1
和num2
变量不包含字符串,它们包含DOM元素。
使用value
属性从输入字段中获取值:
var num1 = document.getElementById("numString1").value;
var num2 = document.getElementById("numString2").value;
但是,Numbers没有value
属性。你想推送号码本身:
List1.push(num1Parsed);
List2.push(num2Parsed);
旁注:使用parseInt
时指定基数,因为带前导零的数字使用基数8而不是10:进行解析
num1Parsed = parseInt(num1, 10);
num2Parsed = parseInt(num2, 10);
- 为什么不'将字符串转换为int不正确(parseInt)
- 将混合字符串和int参数传递给javascript
- 在javascript中将字符串转换为int时出错
- Javascript-将字符串转换为Int会返回NaN错误
- Google 电子表格脚本 getValues - 强制使用 int 而不是字符串
- JavaScript 将字符串转换为带括号的 int 数组
- 在 JavaScript 中将字符串转换为 int 失败
- string.prototype.search('$') 在每个字符串上返回正 int
- 如何将字符串转换为来自按钮输入的 Int
- jQuery/Javascript/AJAX response:将字符串而不是 int 传递到函数中
- Javascript 字符串到 int 转换
- 为什么对于可被10整除的数字,字符串到int之间的转换不能像预期的那样工作
- 从Javascript Int到Java字符串
- 递增字符串中的字母-将char视为int,而不使用.charCodeAt(0)
- 为什么我可以按int而不是字符串进行筛选
- 用JS解析两个HTML字符串,并将其中一个转换为Int
- 如何在对象中搜索特定的int或字符串
- 将一个大数字字符串转换为int
- 如何获取字符串的第一个单词并将其转换为int?jQuery
- 将字符串转换为Int Javascript