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
CodePudding user response:
Try:
sh.getRange(i 2,38).setValue(r[35] * (r[36]/100).setNumberFormat("0.00")
CodePudding user response:
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 |