# Parsing numbers

## Recommended Posts

I need to parse numbers in separate fields.

Base is a text field with data:

124.23F or

12.34G or

123.4H or

1.23K.

There will be always one letter, no problem to parse that part.

For the number left of the period I use:

Left ( myField; Position ( myField; "."; 1; 1) - 1)

Works well.

If I follow the same logic (well, my logic), for the part right of the period I could use:

GetAsNumber ( Right ( myField; Position ( myField; "."; 1; 1) - 1))

GetAsNumber because the result of the parsing has to be number and I don't want the possible letters.

I just got 1 number as result.

When I change the -1 to +1, the result takes sometimes 1 character from the left side of the (.) period.

What am I doing wrong and why?.

The why is important to understand the needed logic.

Just to go more on my own.

Tia

Edited by Guest

##### Share on other sites

why not use Filter (YourField; "0123456789.")

Lee

##### Share on other sites

That will remove the (.) and the letter.

I need what's at the left side of the period in one field, what's right of the period in an other field and the letter in a third field.

##### Share on other sites

Left side

Left ( text ; Position ( text ; "." ; 1 ; 1 ) - 1 )

Right Side

Filter ( Right ( text ; Length ( text ) - Position ( text ; "." ; 1 ; 1 )) ; "0123456789")

And for the letter

Filter (Text; ""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz., ")

Lee

##### Share on other sites

Thanks Lee, it works.

I only had to remove the (.) and the (,) from your Text formula.

Although I see how it works, I want to understand why my approach didn't work.

Care to shed some light ?

##### Share on other sites

Hmmm if there are no spaces we can use possibly.

GetAsNumber ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) )

GetAsNumber ( RightWords ( Substitute ( myField; "."; " " ); 1 ) )

##### Share on other sites

Maybe yes, but that would remove a posible leading zero in the right part.

And that possible zero is still needed in the parsed part.

##### Share on other sites

Then try:

Filter ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) ); "0123456789" )

Filter ( RightWords ( Substitute ( myField; "."; " " ); 1 ) ); "0123456789" )

##### Share on other sites

Both of your calculations have an extra ")" in them.

Filter ( LeftWords ( Substitute ( myField; "."; " " ); 1 ) [color:red]); "0123456789" )

Filter( RightWords ( Substitute ( myField; "."; " " ); 1 ) [color:red]); "0123456789" )

Lee

##### Share on other sites

Oops. Thats what I get for copying and pasting. Thanks for the catch Lee. ???

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×

×
×
• Create New...