SAP Knowledge Base Article - Public

2084175 - Field Format Decimal Precision and Rounding Rules in Compensation

Symptom

  • This KB article explains the process of setting up number formatting for Compensation & Variable Pay
  • How to change the decimal precision for a field
  • Can we have different precision/rounding for fields of the same field type?

Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.

Environment

  • SAP SuccessFactors Compensation
  • SAP SuccessFactors Variable Pay

Resolution

Number Formatting

Please follow the below steps to change/edit number format rules in Compensation

  1. From Admin Center select Compensation> Compensation Home
  2. Select your template
  3. Go to Plan Setup> Settings> Set Number Format Rules 

compensation number format.png

From this page you will see all number format rules used in both Compensation & Variable Pay templates.

You have the ability of adding custom formats into both Compensation & Variable Pay from this page as well as editing standard formats.

Important 

If you do not see the number format option from Plan Setup> Settings then RBP needs to be used for the logged in user.

These permissions can be found from:

Admin Center> Manage Permission Roles> Select Role> Select Permissions> Administrator Permissions> Manage Compensation> Manage Compensation Number Format Rules.

To edit a format, select the rule you want to change

  1. Select the rule you want to change 
  2. Enter the preferred format required
    edit number format.png
  3. Once finished click "Save"

Important

  • Within Compensation templates there is no option of having column specific formats assigned. This is current behaviour.
  • Column specific formatting can only currently be done in Variable Pay templates through design worksheet.
  • For example, Compensation column shows no options for number formats to be selected.

cmp salary no format example.png

  • In Variable Pay there are options to select number formats at column level.

vrp column specific format.png

Decimal Precision

Compensation supports various field types such as:

  • MONEY
  • AMOUNT
  • PERCENT

From number format rules you can define rounding and decimal precision which can be used for these columns.

As we cannot define custom formats for Compensation columns, the system will use defMoneyFormat, defAmountFormat and defPercentFormat for either standard or custom fields.

Another scenario would be having multiple columns as MONEY type in Compensation yet there is a requirement of having one column with two decimal places but the other with zero.

This can be achieved through Number Format Rules by creating "Conditions".
 
 
For example you have 2 fields both set as type = "money". One you want to have 2 decimal point precision, the other one is 0 decimal points. Is this possible?
 
 Yes, but you can only set certain conditions. To make a format for a condition, follow these steps:

  1. Go to Set Number Format Rules as described above
  2. Click on Apply to conditions
  3. Click on Add another rate type to match under Rate type matches any of below:
  4. Define the rate type (annual, monthly) that this format will be for
  5. Repeat steps 3 and 4 for as many times as you need
  6. Click on Add another currency to match
  7. Specify the currency this format will apply to
  8. Repeat as many times as needed to add all the currencies where this format applies
    cmp format rules.png

  9. Click "Add Rule"

Additional Information

When handling PERCENT, MONEY columns in a custom formula where the output will be STRING, you may see discrepancies in the value being generated.

For example, you have a STRING column which contains a formula of curSalary*100. In some cases, you may see the output of this calculation show additional zeros and a "1": 109.0000000000000000001.

This will only happen if the output is STRING. This can be corrected by updating the column to AMOUNT.

This is the generic problem in many programming languages and the root cause is that the computers store and process the floating point values.

Internally, computers use a format (binary floating-point) that cannot accurately represent a number like 0.1, 0.2 or 0.3 at all.

So, when we add 0.1+0.2, the results we get will be 0.30000000000000004 for example.

This is what happened in the above example of 109.0 showing 109.0000000000000000001.

The following links provide a detailed explanation:
https://floating-point-gui.de/basic/
https://0.30000000000000004.com/

The recommended way is to use AMOUNT/MONEY/PERCENT as the type for the custom Field to avoid this issue.

In case of AMOUNT/MONEY/PERCENT type, the number format is being applied on the values and because of the correct values will be shown. 

Keywords

sf, success factors, CMP, VRP, decimal percision, number format, 000000000001, incorrect rounding, cmp rounding, rounding, vrp, format rules, rounding rules, INC0248081 , KBA , sf compensation manage data , LOD-SF-CMP , Compensation Management , LOD-SF-CMP-FRM , Forms & Templates , LOD-SF-VRP-FRM , Forms & Templates , LOD-SF-VRP , Variable Pay Programs , How To

Product

SAP SuccessFactors Compensation all versions