Extracting integers or decimals from a decimal value

MIMI Member Posts: 20
edited 2015-09-03 in NAV Tips & Tricks
Hi all,

I'm sometimes stumbling in the different forums over the same question about how to extract the decimal places of a decimal value.
There are some good solutions but if you take a closer look at the format function itself then you are getting a pretty nice solution for most of your request.

1) Extracting the decimal places of a decimal value for display purposes:
Try this: MESSAGE( '%1', COPYSTR( FORMAT( 1234.5, 0, '<Precision,2:><Decimals>'), 2) );

You have to use "<Precision,..." because otherwise you will get a blank string if the decimal places are 0!
Use "2:" to get at least 2 decimal places up to infinite decimal places. If you want to get allways 2 decimal places use "2:2"

2) Extracting the integer value of a decimal value for display purposes
Try this: MESSAGE( '%1', FORMAT( 1234.5, 0, '<Integer>') );

Just a little hint, I hope someone can use.

:D

...Manfred

Comments

  • Maria-SMaria-S Member Posts: 90
    Thank you Manfred!

    =D>
  • malikadilmalikadil Member Posts: 2
    Very Happy Very Happy Very Happy Very Happy Very Happy YES ! YES !
    _________________
    adil
  • apertierraapertierra Member Posts: 61
    Or for generic purposes (= to store on a value to use for calculations)... simply:

    Integer part: IntegerPart := ROUND(myVariable,1,'<');
    Decimal part: decimalPart := myVariable - (ROUND(myVariable,1,'<');
Sign In or Register to comment.