Задать вопрос
@T-ed

Кто поможет допилить скрипт для Google Spreadsheets?

Есть такой скрипт:
function onOpen() {
  SpreadsheetApp.getUi().createMenu("Extra")
    .addItem("Обновить данные", "updatePoints")
    .addToUi();
}

function updatePoints() {
    var sh = SpreadsheetApp.getActiveSheet();
    var datesColumn = sh.getRange( "A1:A" ).getValues();
    var lastRow = datesColumn.filter( String ).length;
    var oldDate = datesColumn[ lastRow - 1 ][ 0 ];
    var oldPoints = parseFloat( sh.getRange( "B" + lastRow ).getValues() );
    //обновляем валютки на сегодня
    sh.getRange( 'e2' ).setValue( '=ROUND(IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp"; "//ValCurs/Valute[CharCode=""USD""]/Value");2)' );
    //сохраняем текущую дату-время
    var currentDate = Utilities.formatDate( new Date(), "GMT+3", "dd.MM HH:mm" );
    sh.getRange( 'e1' ).setValue( currentDate );
    //забираем текущие цифры
    var currentPoints = parseFloat( sh.getRange( 'e2' ).getValues() );
    if ( currentPoints !== oldPoints ) {
        //сохраняем новые поинты и дату-время обновления
        lastRow++;
        sh.getRange( "B" + lastRow ).setValue( currentPoints );
        sh.getRange( "A" + lastRow ).setValue( currentDate );
        Logger.log( currentPoints + " <> " + oldPoints )
            //MailApp.sendEmail("", "[Alert] ["+currentDate+"] points raised to " + currentPoints, "Old points " + oldPoints
                              //+"\nNew points "+currentPoints+"\n\nUpdated:"+currentDate,{noReply:true});
    } else {
        Logger.log( currentPoints + " = " + oldPoints )
    }
}

По задумке должен забирать и сохранять в Гугл Таблицу курс определенной валюты к рублю, в примере USD. Проблема в том, что курс получается 560,408. Пробую округлить с помощью ROUND до 56, 04 но ничего не выходит, я полный чайник в этом. Где ошибка, подскажите, пожалуйста.
  • Вопрос задан
  • 519 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Хм, так тут просто округление идет до 56.00 и все. Для округления до двух знаков после запятой, надо так и писать:
sh.getRange( 'e2' ).setValue( '=ROUND(IMPORTXML("www.cbr.ru/scripts/XML_daily.asp"; "//ValCurs/Valute[CharCode=""USD""]/Value");2)' );
У меня так получилось округлить....
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы