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 |
