代码是:
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
}
Run Code Online (Sandbox Code Playgroud)
带错误的行:
if (i < 0) return s + ".00"
Run Code Online (Sandbox Code Playgroud)
错误是:
error: expected (;)
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这一问题?
if (i < 0) return s + ".00";
Run Code Online (Sandbox Code Playgroud)
请注意;语句末尾的内容.就个人而言,我更喜欢周围几乎所有的if以s {}如
if (i < 0)
{
return s + ".00";
}
Run Code Online (Sandbox Code Playgroud)
这有助于调试和步进代码.
关于你的脚本:
上面脚本中的问题是最后一个if语句执行一些操作后跟一个返回.手术后需要分号.
在将来,作为良好的做法,请确保在每个有效的陈述后放置一个分号.这样这不会打扰你.
将每一行想象成一种思想,并将花括号视为将"分组"和"联系"思想结合在一起的方式.
下面是一个完整的想法,说"给我一个变量"i"并给它1 + 2的值;
var i = 1 + 2;
Run Code Online (Sandbox Code Playgroud)
下面是对"如果我是3然后加1"的条件的完整考虑."为我添加1"的想法是它自己的想法,所以它需要一个分号.因为IF语句的花括号是特殊的,因为只要你在它之后加上一个"块"(这就是花括号的真正构成),它们就不需要在它们"完全思考"之后使用分号,以包含思想.
这意味着以下内容有效:
if( i == 3 ) {
i = i + 1;
}
Run Code Online (Sandbox Code Playgroud)
下面是不是因为之后的分号如果结束之前,如果知道该怎么做,如果我等于3的"思想"有效:
if( i == 3 ) ; {
i = i + 1;
}
Run Code Online (Sandbox Code Playgroud)
有关基本的JavaScript教程,请查看W3Schools.
"肯定有更好的办法?"
每当你发现自己在decmials上做了大量的字符串操作时,最好问自己"有没有更好的方法来做到这一点?".
看起来你正在编写一个函数来将数字四舍五入到最接近的百分数,同时显示两个小数点.有一个更简单的方法来做到这一点.你可以四舍五入到最接近的百分之一,并有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 );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2696 次 |
| 最近记录: |