Implement float support to FOR IN RANGE loops (fixes #1850)

FOR IN RANGE loop works now even with float arguments.
I added some code to calculate the number of digits for scientific notation numbers. Basically it splits the number converted to string in 2 parts:
- for the part before `e` it calls again the`_digits` function to calculate the number of digits (uses the old code)
- for the part after e we use directly the number
- the final number of digits for scientific notation numbers will be max(first part - second part,0)