2014-07-08 4 views
1

Какова правильная структура форматирования строк для скриптов Google Apps - согласно documentation.Форматировать строку как валюту для Документов Google

Это о том, как работает форматирование C?

Я не могу понять, как написать форматирование строки в стиле sprintf с использованием строк стиля «%».

Я использую Сценарии Google Apps для копирования данных из электронной таблицы, обработки данных в памяти, а затем заменяю текстовые заполнители в документе Google обработанными данными.

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

Я написал простую функцию для форматирования строк ...

function formatStringCurrency(tempValue) { 
    // Description 
    return Utilities.formatString("$%d,%3.2f", tempValue/1000, tempValue%1000); 
} 

и я анализирую необходимые данные через эту функцию, чтобы подготовить «валюту, как» строку.

Моя проблема - моя функция форматирования отлично работает если строка не более 1000, а также кратно 1000, то есть не содержит сотни или меньше.

Например, вот скриншот образец моей текущей выходной ...

spreadsheet output: first row $2,325.00, $9,300.00, second row $3,0.00, $12,0.00, etc...

Вторая строка предназначена для отображения $ 3,000.00 и $ 12,000.00.

Я думал о форматировании таблицы Google Doc, однако это еще не возможно ни вручную, ни программно.

Я также попытался удалить все форматирование из чисел, как они представлены в исходной таблице, однако это не имеет значения.

Как всегда, любая помощь будет оценена по достоинству.

ответ

2

Ведущие нули (нули слева до минимального количества цифр) не работают для поплавков. Но это будет работать

function formatStringCurrency(tempValue) { 
    // Description 
    return Utilities.formatString("$%d,%02d%1.2f", tempValue/1000, tempValue%1000/10,tempValue%10); 
} 

function examples(){ 
    Logger.log(formatStringCurrency(1)); 
    Logger.log(formatStringCurrency(0.1)); 
    Logger.log(formatStringCurrency(1000)); 
    Logger.log(formatStringCurrency(100)); 
    Logger.log(formatStringCurrency(134141)); 
    Logger.log(formatStringCurrency(32423.43)); 
} 

результат:

[14-07-08 19:47:21:138 HKT] $0,001.00 
[14-07-08 19:47:21:141 HKT] $0,000.10 
[14-07-08 19:47:21:145 HKT] $1,000.00 
[14-07-08 19:47:21:149 HKT] $0,100.00 
[14-07-08 19:47:21:154 HKT] $134,141.00 
[14-07-08 19:47:21:157 HKT] $32,423.43 
+0

отлично работает спасибо. – andrewbuilder

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