Javascript 如何修复此语法错误?
代码是:Javascript 如何修复此语法错误?,javascript,syntax-error,Javascript,Syntax Error,代码是: function roundAmount(theDecimal) { var s = "" + Math.round(theDecimal * 100) / 100 var i = s.indexOf('.') if (i < 0) { return s + ".00" } var t = s.substring(0, i + 1) + s.substring(i + 1, i + 3) if (i
function roundAmount(theDecimal) {
var s = "" + Math.round(theDecimal * 100) / 100
var i = s.indexOf('.')
if (i < 0) {
return s + ".00"
}
var t = s.substring(0, i + 1) + s.substring(i + 1, i + 3)
if (i + 2 == s.length)
t += "0"
return t
}
有人知道如何解决这个问题吗?在这行末尾加一个分号!像这样:
if (i < 0) return s + ".00";
如果(i<0)返回s+“.00”;
它需要一个分号,所以添加一个分号
if (i < 0)
return s + ".00";
if(i<0)
返回s+“.00”;
这有助于调试和单步执行代码。我看不出您在前面的评论中发布的代码有什么特别的错误,但我建议您始终在语句末尾添加分号。虽然它们不是必需的,但它通常使调试此类问题变得更容易 关于您的脚本: 上面脚本中的问题是最后一个if语句,它执行一些操作,然后返回。手术后你需要一个分号 今后,作为一种良好的做法,请确保在每个有效语句后加上分号。这样就不会打扰你了 把每一行想象成一个想法,把花括号想象成将想法“组合”在一起并“联系”在一起的方式 下面是一个完整的想法,说“给我一个变量”i“并给它1+2的值
var i = 1 + 2;
下面是一个关于“如果我是3,那么将1添加到i”的条件的完整想法。“将1添加到i”是它自己的想法,因此它需要一个分号。因为If语句的curlybraces的特殊之处在于,它们在“完整想法”之后不需要分号,只要你放置一个“block”(这就是curlybraces真正的用途)在它之后,把思想封闭起来
这意味着以下各项有效:
if( i == 3 ) {
i = i + 1;
}
以下无效,因为if后面的分号结束了if前面的“思想”,如果i等于3,则知道该怎么办:
if( i == 3 ) ; {
i = i + 1;
}
有关基本JavaScript教程,请查看
一定有更好的方法吗?
每当您发现自己在decmial上执行大量字符串操作时,最好问问自己“有更好的方法吗?”
看起来您正在编写一个函数,在显示两个小数点的同时将数字四舍五入到最接近的百分之一。有一种更简单的方法可以做到这一点。您只需将数字四舍五入到最接近的百分之一,然后让javascript输出固定的点号
例如:
function roundAmount( theDecimal ) {
//first round to the nearest hundredth
//then return the value with two decimal places as a string
return theDecimal.toFixed( 2 );
}
噢,顺便说一下,语言是java脚本thanksa分号缺失在Javascript中不重要,那一行是好的。错误一定在其他地方。我想可能在上面一行。需要查看更多代码…这是我们应该通过修复问题来回答的问题类型吗?例如,“我的问题是我写了{this},但是我真的应该写{that}“其中{this}是他的原始材料,{that}是“正确”的答案。函数roundAmount(theDecimal){var s=”“+Math.round(theDecimal*100)/100var I=s.indexOf('.')if(I<0){return s+“.00”}var t=s.substring(0,I+1)+s.substring(I+1,I+3)if(I+2==s.length)t+=”0“return t}希望这有助于它在输入分号时仍然出现错误
var i = 1 + 2;
if( i == 3 ) {
i = i + 1;
}
if( i == 3 ) ; {
i = i + 1;
}
function roundAmount( theDecimal ) {
//first round to the nearest hundredth
//then return the value with two decimal places as a string
return theDecimal.toFixed( 2 );
}