We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

toFixed() not working in client script

johannaS
Tera Expert

This script works as expect until I add toFixed() to shorten the decimal places to two.  Error in screenshot below. Can someone offer me an alternative?

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}

var billRate = g_form.getValue('u_bill_rate');
var billRateNum = parseFloat(billRate.split(';')[1].replaceAll(',',''));
var costRate = newValue;
var costRateNum = parseFloat(costRate.split(';')[1].replaceAll(',',''));
//var contributionMarginNum = billRateNum + costRateNum;

var contributionMarginNum = (billRateNum - costRateNum) / billRateNum;
var contributionMarginString = contributionMarginNum.toString();
var contributionMargin = contributionMarginString + "%";
var rounded = contributionMargin.toFixed(2);

g_form.setValue('u_contribution_margin_string', rounded);

 

find_real_file.png

1 REPLY 1

Rahul Talreja
Mega Sage

Hi Johanna,

Can you please try changing some lines in script as below-

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}

var billRate = g_form.getValue('u_bill_rate');
var billRateNum = parseFloat(billRate.split(';')[1].replaceAll(',',''));
var costRate = newValue;
var costRateNum = parseFloat(costRate.split(';')[1].replaceAll(',',''));
//var contributionMarginNum = billRateNum + costRateNum;

var contributionMarginNum = (billRateNum - costRateNum) / billRateNum;
var contributionMarginNum = contributionMarginNum.toFixed(2);
var contributionMarginString = contributionMarginNum.toString();
var contributionMargin = contributionMarginString + "%";

g_form.setValue('u_contribution_margin_string', contributionMargin);


Please let me know if it works for you.

Regards,
Rahul

Please mark my response correct/helpful as applicable!
Thanks and Regards,
Rahul