2014-07-08 34 views
1

什么是Google Apps脚本的正确字符串格式结构 - 根据documentation格式字符串作为Google文档的货币

这是关于如何C格式的作品?

我无法确定如何使用'%'样式的格式化字符串来编写类似sprintf的字符串格式。

我使用Google Apps脚本从电子表格复制数据,处理内存中的数据,然后用处理的数据替换Google Doc中的文本占位符。

某些数据包含数字,旨在表示货币,并将这些数据放入表格中。

我写了一个简单的函数来格式化字符串...

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