Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Calculating currency field - Result doesnt have proper format

Chad31
Mega Expert

When using a script to calculate two currency fields and show the sum in a 3rd currency field it's not returning the proper formatting. 

function onLoad(control, oldValue, newValue, isLoading, isTemplate) {

var tot= 0.00;
var f1 = g_form.getDecimalValue('capital_outlay');   //first currency field.  
var f2 = g_form.getDecimalValue('labor_costs'); //second currency field

tot = f1+f2;
g_form.setValue('total_costs', "$"+tot); //Need commas and decimals to show properly;
}

find_real_file.png

Decimals are showing correctly but other numbers don't have commas. I have seen several post on this but don't know how to adapt answers to my solution. Any advise would be helpful. Thank you

1 ACCEPTED SOLUTION

Not applicable

Hi Chad,

 

Please try the below script. I have tried and executed. The code works as expected:

 

var tot= 0.00;

var f1 = g_form.getDecimalValue('capital_outlay'); // f1=505.89
var f2 = g_form.getDecimalValue('labor_costs');    // f2=5000.00


tot = f1+f2;
function formatNumber (num) {
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
}

var sum=formatNumber(tot));


g_form.setValue('total_costs',sum);

 

Output:

*** Script: Total::::5,505.89

 

Please mark the answer helpful if it helps.

View solution in original post

10 REPLIES 10

function onLoad(control, oldValue, newValue, isLoading, isTemplate) {

var tot= 0.00;
var f1 = g_form.getDisplayValue('capital_outlay');   //Changed from getDecimalValue()  
var f2 = g_form.getDisplayValue('labor_costs'); //Changed from getDecimalValue() 

tot = f1+f2;
g_form.setValue('total_costs', "$"+tot); //Need commas and decimals to show properly;
}

//You can also use getCurrencyDisplayValue();

 

This should retain all currency formatting.

Prateek kumar
Giga Sage
function onLoad(control, oldValue, newValue, isLoading, isTemplate) {

var tot= 0.00;
var f1 = g_form.getDecimalValue('capital_outlay');   //first currency field.  
var f2 = g_form.getDecimalValue('labor_costs'); //second currency field

tot = parseFloat(f1+f2);
tot = "$"+tot;
g_form.setValue('total_costs', tot); //Need commas and decimals to show properly;
}

 

Please mark my response as correct/helpful based on the impact.

-Best Regards

Prateek kumar


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

Thank you for your Response. Unfortunately this doesn't work either. Same results. 

This worked for me.

function onLoad(control, oldValue, newValue, isLoading, isTemplate) {

var tot= 0;
alert(tot);
var f1 = g_form.getDecimalValue('u_captial_outlay'); //first currency field. 
var f2 = g_form.getDecimalValue('u_labor_costs'); //second currency field

//tot = parseFloat(f1+f2);
//tot = parseFloat(f1)+parseFloat(f2);
tot = f1+f2;
alert(tot);
g_form.setValue('u_total_costs', currencyFormat(tot)); //Need commas and decimals to show properly;
}
function currencyFormat(num) {
return '$' + num.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
}

 

Please mark my response as correct/helpful based on the impact.

-Best Regards

Prateek kumar

 


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

Not applicable

Hi Chad,

 

Please try the below script. I have tried and executed. The code works as expected:

 

var tot= 0.00;

var f1 = g_form.getDecimalValue('capital_outlay'); // f1=505.89
var f2 = g_form.getDecimalValue('labor_costs');    // f2=5000.00


tot = f1+f2;
function formatNumber (num) {
return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
}

var sum=formatNumber(tot));


g_form.setValue('total_costs',sum);

 

Output:

*** Script: Total::::5,505.89

 

Please mark the answer helpful if it helps.