[英]How do i take user input and convert the string into an integer that i can use mathematically in a function?
如何接收用户输入并将字符串转换为可以在函数中数学使用的整数?
编码和尝试构建一个简单的计算器完全陌生。 我不确定自己在做什么错,任何帮助将不胜感激。
function TLV()
{
var TLVday = Integer.valueOf("getTLVdate");
var OBday = Integer.valueOf("getOBdate");
if (TLVday<OBday)
{
DD = OBday + 10;
}
else
{
DD = OBday + 30;
}
document.getElementById("TLVoutput").innerHTML=DD;
}
<form name="myform" id="frm1">
<table style="border:0;">
<tr>
<td>OB Start Day:</td>
<td><input type="text" id="getOBdate"/></td>
</tr>
<tr>
<td>TLV Start Day: </td>
<td><input type="text" id="getTLVdate"/></td>
<td id="TLVoutput"></td>
</tr>
<button onclick="TLV()">Calculate</button>
</table>
</form>
这是三种常见方式:
var myNumber = +myString; // coerce string to number
var myFloat = parseFloat(myString); // parse as floating point number
var myInt = parseInt(myString, 10); // parse as a base-10 integer
文档:
+
运算符-mdn msdn
parseFloat()
方法-mdn msdn
parseInt()
方法-mdn msdn
这些技术中的每一个都有自己的怪癖。 由于JavaScript具有动态特性,因此类型转换并不简单。
parseInt()
parseInt()
通过从左到右读取数字来产生整数或NaN
。 如果您的字符串仅包含数字, 并且您正在使用支持ECMAScript 5的浏览器(不支持IE8和更早版本),则非常简单-您将这些数字作为以10为底的数字。在IE8或更早版本中,如果第一个digit是0
,您将获得八进制数字。 例如, parseInt("010")
在现代浏览器中返回10
,在较旧的浏览器中返回8
。 要对此进行更正,请始终在第二个参数中指定基数 。 无论浏览器版本如何, parseInt("010", 10)
始终返回10
。
解析在第一个非数字字符处停止。 因此, parseInt("4 donuts")
返回4
就像parseInt("4,000")
。 如果字符串中的第一个字符不是数字或+
或-
,则将得到NaN
,因此无法解析"$5"
。
如果字符串以0x
则将其视为十六进制(以16为底)。 parseInt("0x10")
返回16
。 如果您明确指定基数为16的基数也一样: parseInt("10", 16)
。
parseFloat()
parseFloat()
与parseInt()
类似。 区别在于parseFloat()
仅适用于以10为底的数字,并且显然会产生浮点数。
+
) 在JavaScript中,字符串可以用作数字。 当JavaScript构造接受数字并获取其他内容(例如字符串)时,通常会尝试将其“强制”为数字。 我们看到此行为的一种情况是+
运算符。 在某些方面,强制比解析更严格-整个字符串必须是数字,而不仅仅是开头,否则它将返回NaN
。 但是,以另一种方式,它的严格性就不那么严格–空字符串或空格字符串在强制转换为数字时返回0
,但在解析时返回NaN
。
除加法运算符外,将字符串强制转换为数字的其他方法包括:
Number()
构造函数作为函数 Math.floor("10")
var string = "10";
var num = string * 1;
var num = string / 1;
在ECMAScript规范的第9.3.1节中,获取有关如何将字符串强制转换为数字的完整详细信息。
使用parseInt('value', 10 )
将字符串转换为数字
要读取该值,请使用此语法..它根据id选择元素,然后在其上使用value属性获取值。
请记住,这是JavaScript
而不是Java
var TLVday = document.getElementById.('getTLVdate').value
将您的代码更改为
var button = document.getElementById('calculate');
button.addEventListener('click', TLV);
function TLV() {
var TLVday = parseInt(document.getElementById('getTLVdate').value, 10),
OBday = parseInt(document.getElementById('getOBdate').value, 10),
DD = 0;
if (TLVday < OBday) {
DD = OBday + 10;
} else {
DD = OBday + 30;
}
document.getElementById("TLVoutput").innerHTML = DD;
}
同时避免内联绑定事件。 始终最好的主意是将您的疑虑分开。
没有“ Integer”这样的东西,那是Java而不是JavaScript。
要将字符串解析为整数,可以使用parseInt,但是如果您不在乎它是整数还是浮点数,则无需执行任何操作-尝试使用它时,它将自动转换。
但是,您不能仅通过使用其ID访问字段值。 相反,您必须使用DOM-'document.getElementById(“ getTVLdate”)。value'
如果您需要将字符串转换为数字,则可以使用parseInt
,如果需要浮点则可以使用parseFloat
。
parseInt('84945')
;
您可以给另一个参数parseInt('84945',10)
; 指定基数,在这种情况下为bas 10
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.