Forum Discussion
gonzotek
16 years agoVisitor
"areskar" wrote:
Hi, is there any possibility to round of a float/double value with a given amount of decimals. For example turn the number 1.27456 into 1.3?
I haven't found anything in the documentation (2.4 SDK release) to support this. Tried a workaround with string conversion, but this turns out to be hard since floats and doubles don't have the tostr() interface method.
Also, I would like to write this formatted float value as text on a roImageCanvas. But this does not seem to work either because of the mentioned tostr() limitation since the text attribute is a String value.
Is this not possible, or is there a specific way of doing it?
Any help on this topic is appreciated!
X = 1.27456
'Multiply X by 10^(number of decimal places you want).
X = X * 10
'(X = 12.7456)
'Add 0.5
X = X + 0.5
'(X = 13.2456)
'Now lop off the remaining, unwanted decimal places
X = fix(X) 'Fix is defined in the Brightscript reference manual of the 2.6 sdk (I haven't looked at 2.7 yet). It simply chops off all decimal places to the right of the decimal point.
'(X = 13)
Divide by 10^(number of decimal places you want).
X = X / 10
'X = 1.3
Also in the same document, the str(x) method appears to take a float and return a string.
X = str(X)
'(X = " 1.3")