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
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