2014-07-08 31 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