[Gambas-user] Rounding to 2 decimals

Tobias Boege tobiasboege01 at ...1601...
Fri Jul 27 19:49:46 CEST 2012


On Fri, 27 Jul 2012, rocko wrote:
> On Fri, 2012-07-27 at 19:25 +0200, Tobias Boege wrote:
> > On Fri, 27 Jul 2012, rocko wrote:
> > > Using '.value instead of .text gives an error:
> > > "Unknown symbol "value" in class TextBox"
> > > 
> > > On Fri, 2012-07-27 at 02:05 +0200, LeszekK wrote:
> > > > 'Do not use textboxes for mathematical calculations
> > > > 
> > > > Dim prmAmnt As Integer
> > > > Dim totAmnt As Integer
> > > > Dim perAmnt As Single
> > > > 
> > > > prmAmnt = prmBox.value 'valuebox! not textbox
> > > > totAmnt = totBox.value 'valuebox! not textbox
> > > > perAmnt = Round((prmAmnt / totAmnt * 100), 2)
> > > > ValueBox1.Value = perAmnt & "%"
> > > > 
> > > > I not tested the code but it should work.
> > > > 
> > 
> > First, I herewith want to join the folks who urge to not top-post.
> > 
> > If you have a deeper look at the error message above, you'll notice that you still use TextBox
> > instead of ValueBox, right?
> > 
> > Regards,
> > Tobi
> 
> Ah yes the 'ol top vs bottom post --oh well
> Yes I figured that out and replaced my textBoxes with valueBoxes
> but still can't get it to work 
> 
> 

:)
OK, so to sum up, two things were wrong with your very first code:
a) Used TextBox without conversion -> use ValueBox instead
b) To round to decimals, the second argument to Round() must be negative
   -> use -2

This gives:

Dim prmAmnt As Integer
Dim totAmnt As Integer
Dim perAmnt As Single

prmAmnt = prmBox.Value
totAmnt = totBox.Value
perAmnt = Round(prmAmnt / totAmnt * 100, -2)

Print perAmnt

This code works for me (but without the ValueBox input stuff, I used
prmAmnt = 2 and totAmnt = 3 hard-coded instead)

If this does not work, please say what makes you feel that it didn't work.

Regards,
Tobi




More information about the User mailing list