On Fri, 27 Jul 2012, rocko wrote: > On Fri, 2012-07-27 at 19:49 +0200, Tobias Boege wrote: > > 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 > > No it does not work for me. > The last valueBox remains blank, actually it has a zero in it. > The valueBox isn't updating it's value to the calculation, I can't > seem to figure out why. > > I added a print statement and it does print the result in the console > but it's not rounding to 2 places, using 2 and 3 gives a result of > 66.6699982. > I double checked the name and it is the same as in the code, ValueBox1, > as I did not rename it like I did with the others. > > I am using: ValueBox1.Value = perAmnt & "%" >
Wait a minute. _My_ example definitely works but I have overseen that I, by habit, picked a 'Float' instead of a 'Single' datatype for the floating result. Changing in my working code this 'Float' to 'Single' gives me an un-rounded floating point. I also don't know how well Gambas already performs this automatic type conversion in simple assignments as you do with ValueBox.Value = fFloat & sStr (especially when assigning to Variant) I guess, a Str$(fFloat) & sStr instead would not hurt, but I really have no idea about these conversion magic within Gambas. Regards, Tobi ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user