2009-07-23 8 views
2

Код:Как исправить эту синтаксическую ошибку?

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" 

Ошибка:

error: expected (;) 

Кто-нибудь знает, как это исправить?

+0

ой кстати laguage является Java Script благодаря – 2009-07-23 17:15:54

+0

с запятой отсутствует, не имеет значения в JavaScript –

+0

, что линия в порядке. Ошибка должна быть где-то в другом месте. Я думаю, это может быть одна строка выше, возможно. Нужно видеть больше кода ... –

ответ

5

О вашем скрипте:

Проблема в сценарии выше, что в прошлом, если заявление, которое делает некоторые операции с последующим возвратом. После операции вам понадобится полуколона.

В будущем, как хорошая практика, не забудьте положить пол-двоеточия после каждые действительное заявление. Таким образом, это вас не беспокоит.

Думайте о каждой линии как о мысли, и фигурных скобках, как о способах «группировать» и «связывать» мысли вместе.

Внизу полная мысль, что говорит «дайте мне переменную„я“и дать ему значение 1 + 2;

var i = 1 + 2; 

Внизу полная мысль о том условии, что говорит:» ​​Если я 3, затем добавьте 1 к i ". Мысль« добавить 1 к i »- это ее собственная мысль, поэтому ей нужна точка с запятой. Поскольку curlybraces для оператора IF являются особыми в том смысле, что они не нуждаются в полуколонии после их «полная мысль» до тех пор, пока вы положите «блок» (это то, что делают на самом деле curlybraces) после него, чтобы приложить мысль.

Это означает, что справедливо следующее:

if(i == 3) { 
    i = i + 1; 
} 

Ниже не недопустим, поскольку с запятой после того, как если заканчивается «мысль» перед тем, если знает, что делать, если я равно 3:

if(i == 3) ; { 
    i = i + 1; 
} 

Для основного учебника 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); 
} 
4

Добавить точку с запятой в конце строки! Например:

if (i < 0) return s + ".00"; 
4

Ожидается точка с запятой, поэтому добавьте точку с запятой.

if (i < 0) 
    return s + ".00"; 
5
if (i < 0) return s + ".00"; 

Обратите внимание на ; в конце заявления. Лично я предпочитаю окружающий почти все мои if с в {}, такие как

if (i < 0) 
{ 
    return s + ".00"; 
} 

, который помогает в отладке и шаговый хотя кода.

0

Я не вижу ничего особенно плохого в коде, который вы отправили в предыдущих комментариях, но могу ли я предлагать всегда добавлять полуточку в конец ваших утверждений. Хотя они не требуются, обычно упрощается отладка таких проблем.

Смежные вопросы