JavaScript计算返回NaN作为结果 [英] JavaScript calculations return NaN as result

查看:104
本文介绍了JavaScript计算返回NaN作为结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个带有日期并显示日期的html页面.我正在使用一个称为Zeller全等的公式.但是在JavaScript中,该公式返回结果"NaN".我用谷歌搜索了这个问题.无法找出解决方案. 这是采用值的html.

I am developing a html page that takes date and displays day. I am using a formula called Zeller's congruence. But in JavaScript the formula returns the Result "NaN". I googled the problem. Couldn't figure out the solution. Here is the html that takes values.

<form method="post">
<br/>
day:<input id="dd" name="dd" type="text"/><br/>
month:<input id="mm" name="mm" type="text"/><br/>
year:<input id="yy" name="yy" type="text"/><br/>
<input type="submit" value="go" onclick="day()"/><br/>
</form>

这是一段返回NaN的JavaScript公式.

Here is the piece of JavaScript formula thats returning NaN.

function day() { 
var d=document.getElementById("dd").value;
var m=document.getElementById("mm").value;
var y=document.getElementById("yy").value;

var h=(d+(((m+1)*26)/10)+y+(y/4)+6*(y/100)+(y/400))%7;//returns NaN
var d2=((h+5)%7); code continues.. 

请帮助我.

先谢谢了.

推荐答案

在某些情况下,公式中的+符号将进行字符串连接而不是sum,就像在JavaScript "1" + 1 === "11"中那样.您需要使用parseIntparseFloat函数将字符串中的值(从表单字段返回)转换为数字:

In some cases + signs in your formula will do string concatenation instead of sum, as in JavaScript "1" + 1 === "11". You need to convert your values from strings (as returned from form fields) to numbers with parseInt or parseFloat functions:

var d = parseInt(document.getElementById("dd").value, 10);

或支持浮点数(如果需要):

or to support float numbers (if required):

var d = parseFloat(document.getElementById("dd").value);

Number(v)的快捷方式:

var d = +document.getElementById("dd").value;

这篇关于JavaScript计算返回NaN作为结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆