How to Round a PDF Form Average to the Nearest 10 Using JavaScript
Question details
The user needs to write a JavaScript calculation in a fillable PDF form to average multiple numeric fields, ignoring blank or zero values, and round the final result to the nearest 10.

- Product
- PDF Editor
- Device & OS
- not provided
- Scenario
- Creating or editing an interactive PDF form that requires a specific rounding rule and exclusion of empty data fields for accurate average calculations.
- Observed behavior
- Standard average calculations include blank fields as zeros and do not round to multiples of 10 natively, requiring a custom JavaScript solution to achieve the goal.
Ensure your PDF editor supports JavaScript for form fields, and identify the exact names of the numeric fields you intend to average before adding your custom script.
Use Custom JavaScript to Calculate and Round the Average
Apply a custom calculation script to the target field that loops through your input fields, calculates the average by ignoring zeros, and rounds the result to the nearest 10.
When calculating an average in a PDF form, built-in functions may incorrectly include zeros or blanks, throwing off the result. A custom JavaScript loop ensures only valid inputs are counted.
By applying the formula 'Math.round((value) / 10) * 10', the script securely rounds the final calculation up or down to the closest multiple of 10.
Right-click the destination text field where the rounded average should appear and select 'Properties' from the context menu.
Click on the 'Calculate' tab at the top of the Properties dialog box and select the option for 'Custom calculation script'.
Click 'Edit' and enter the following script: var nSum = 0, nCnt = 0; for (var i = 1; i <= 3; i++) { var nVal = Number(this.getField('RowName' + i).value); if (nVal != 0) { nSum += nVal; nCnt++; } } if (nCnt > 0) { event.value = Math.round((nSum / nCnt) / 10) * 10; } else { event.value = ''; }
Replace 'RowName' with the actual base name of your PDF fields, and adjust the loop limit (e.g., i <= 3) based on how many fields you are averaging.

Create and Manage Advanced Fillable Forms with WPS Office
WPS Office provides an intuitive PDF editor that lets you quickly create fillable forms, insert custom JavaScript calculations, and manage your interactive documents with ease.
- 1. Open Your PDF in WPS: Launch WPS Office and open your existing PDF document using the WPS PDF desktop application.
- 2. Access Form Mode: Navigate to the 'Form' tab on the top ribbon to access the interactive form creation and editing tools.
- 3. Add and Configure Fields: Insert a Text Field, double-click it to open its Properties, and navigate to the Calculate section to input your custom JavaScript code.
- 4. Save and Test: Save your PDF document and enter sample numeric data into the fields to verify that your rounding calculations are functioning correctly.

Frequently Asked Questions
Why is my PDF form calculation including blank fields as zeros?
By default, simple arithmetic formulas in standard PDF form tools treat blank fields as zero. This artificially inflates your denominator and pulls down the average. Using a custom JavaScript loop allows you to explicitly ignore fields with a zero value or empty string.
How do I round a PDF calculation to the nearest whole number instead of 10?
To round your result to the nearest whole number, simply use 'Math.round(your_value)' in your JavaScript without dividing and then multiplying by 10.
Can I average fields with completely different names instead of numbered names?
Yes. Instead of using a 'for' loop with an incrementing number, you can manually define an array of your exact field names (e.g., var fields = ['FieldA', 'FieldB', 'FieldC'];), loop through that array using a standard loop, and apply the same exclusion logic for zeros.
Does WPS PDF support JavaScript form calculations?
Yes, WPS PDF supports standard JavaScript calculations for interactive PDF forms, ensuring full operational compatibility with files originally created and scripted in software like Adobe Acrobat.




