简体   繁体   中英

How to set the result to 2 decimal places in google apps script

I have the following code and require the results have 2 decimal places

function TotalVat() {
  const ss = SpreadsheetApp.openById('1BAj2E_xv3bz_Fnt0Xcm5UidGapZhVWeJ6gA5w3-Vnsj');
  const sh = ss.getSheetByName("JOBS");
  const vs = sh.getRange(2, 1, sh.getLastRow() - 2, sh.getLastColumn()).getValues();  
  vs.forEach((r,i) => {
    sh.getRange(i + 2,38).setNumberFormat("0.#0").setValue(r[35] * (r[36]/100));
  });
}

The format on the spreadsheet is 2 decimal places however I am also sending the result by email and here the result from the calculation is more than 2 decimal places. Any assistance will be greatly appreciated. Thanks

Try:

sh.getRange(i + 2,38).setValue(r[35] * (r[36]/100).setNumberFormat("0.00")

This works for me:

function TotalVat() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Sheet0");
  const vs = sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
  vs.forEach((r, i) => {
    sh.getRange(i + 2, 3).setValue(r[0] * (r[1] / 100)).setNumberFormat("0.00");
  });
}
COL1 COL2
3 10 0.30
9 8 0.72
5 15 0.75
11 12 1.32
0 13 0.00
0 19 0.00
7 15 1.05
18 17 3.06
18 1 0.18
11 17 1.87
9 15 1.35
3 3 0.09
17 16 2.72
2 4 0.08
3 13 0.39
3 8 0.24
19 1 0.19
19 5 0.95
2 8 0.16
15 10 1.50

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM