hello

I use all declared as Int32

when I try to pull the value using str () the result is always 0

I expect values ??of type

1.28606227 with str(wrr)

0.96085112 with str(hrr)

what am I doing wrong?

Thanks,

Rui

```
tfb = tfocallenght * barlowr
tfbr = 206.265 * pixelsize / tfb
asw = width * tfbr / 60
ash = height * tfbr / 60
wr = width / binr / resizer
hr = height / binr / resizer
wrr = asw / 60
hrr = ash / 60
msgbox(str(wrr)) // check result
```

Hard to tell without seeing proper values there, but my guess is that your int’s, when divided by 60, are less than 1.

An int is a whole number.

integers will not do fractional math. You need to declare them as `double`

.

Also, str() will round numbers so it’s better to use `format()`

when outputting doubles.

Sometimes get values ??in this format

how can I get around this?

1.#INF00e

1.INF00e

and should show

2.85791617

2.13522472

Rui

Floating point math can result in special results like “infinite” “negative infinite” and “not a number”. This isn’t a Xojo bug but a limitation of floating point arithmetic.

[quote=28488:@Marc Zeedar]integers will not do fractional math. You need to declare them as `double`

.

Also, str() will round numbers so it’s better to use `format()`

when outputting doubles.[/quote]

Not 100% true. Str accepts a second parameter identical to Format. Format will respect international settings, Str will not.

Infinite and not-a-number results usually mean you have divided by zero.