【发布时间】:2018-06-18 20:14:01
【问题描述】:
编辑:有几个线程建议作为答案,但任何一个线程的想法都没有奏效。我都试过了。
非常感谢您: 用户 Eazy 在他的建议中进一步评论解决了这个问题。事实证明,这样做的正确方法是将整个 paresInt 数学放在括号中:
List += "" + list[i].team + "" + (parseInt(list[i].wins) + parseInt(list[i].ties) + parseInt(list[i].lost)) ""
原问题:
所以我正在制作一个 js 代码来打印数据库中的表。该数据库包含一个足球联赛表,其中包含球队名称、赢球、平局和输球。当我将表格打印为 HTML 时,我想做数学计算来计算所玩的游戏和总分,因为数据库不提供信息。
最奇怪的是,如果我将表中的 (*) 值相乘,它就会起作用。如果我减去 (-) 或除 (/) 数字,它会起作用。但是,如果我尝试将数字与 + 相加,则代码会将数字视为字符串,并且只是将数字彼此相邻写入。我以前遇到过这个问题,我很困惑。解决方案可能很明显,但我就是想不通。
如果一支球队赢了 23 场比赛,平局 7 次,输了 3 次,那么加起来就是 33 场比赛。所以如果我做数学:
List += "<tr><td>" + list[i].team + "</td><td>" +
list[i].wins + list[i].ties + list[i].lost + "</td></tr>"
返回 2373
如果我使用不同的运算符,例如乘法:
List += "<tr><td>" + list[i].team + "</td><td>" +
list[i].wins * list[i].ties * list[i].lost + "</td></tr>"
它返回 483 wichs 是正确计算的,因此这些项目显然不是字符串。正如我所说,该代码适用于除 + 之外的所有其他运算符。这是为什么呢?
【问题讨论】:
-
这些版本都不应该工作。您有一个
)没有匹配的(并且您在 .lost 之后缺少+ -
“代码将数字视为字符串”。不,它们确实是字符串,所有其他操作都强制转换为数字
-
哦,抱歉,缺少的 + 和唯一的 )(我在尝试了 pareInt() 选项后不小心把它留在那里)是帖子中的拼写错误,而不是实际代码。
标签: javascript jquery operators