449,284 Members | 1,246 Online Need help? Post your question and get tips & solutions from a community of 449,284 IT Pros & Developers. It's quick & easy.

# How to write this simple program? converting to numbers???

 P: n/a I want to calculate the surface area of a sphere from an inputed radius with option strict on. I guess I am not converting something correctly. Here is what I am doing: I have a textbox txtradius that I enter a radius into. I then have a lable that I want the surface area to be displayed in called lblsurface here is my logic. lblsurface.text = (4 * 3.14 * txtradius * txtradius) I am getting a conversion error. I dim txtradius as double dim lblsurface as double Thanks for any help Jan 17 '07 #1
10 Replies

 P: n/a "Ron" I then have a lable that I want the surface area to be displayed in called lblsurface here is my logic. lblsurface.text = (4 * 3.14 * txtradius * txtradius) I am getting a conversion error. I dim txtradius as double dim lblsurface as double txtRadius is a textbox right? In that case you should be doing: Dim _Radius as Double = Ctype(txtRadiu.text, Double) Jan 17 '07 #2

 P: n/a Ron wrote: I want to calculate the surface area of a sphere from an inputed radius with option strict on. I guess I am not converting something correctly. lblsurface.text = (4 * 3.14 * txtradius * txtradius) You could boil all this down into a single statement, but here's the long-hand way, so you can see all the conversions going on ... Dim nRadius as Double = CDbl( txtRadius.Text ) Dim nArea as Double _ = 4 * Math.PI * Math.Pow( nRadius, 2 ) lblSurface.Text = nArea.ToString( "0.000" ) HTH, Phill W. Jan 17 '07 #3

 P: n/a In the second line you put CDbl(lblsurface.Text, double) it should be CDbl(lblsurface.Text) or CType(lblsurface.Text, double) "Ron" Ron wrote: I want to calculate the surface area of a sphere from an inputed radius with option strict on. I guess I am not converting something correctly. lblsurface.text = (4 * 3.14 * txtradius * txtradius) You could boil all this down into a single statement, but here's thelong-hand way, so you can see all the conversions going on ...Dim nRadius as Double = CDbl( txtRadius.Text )Dim nArea as Double _ = 4 * Math.PI * Math.Pow( nRadius, 2 )lblSurface.Text = nArea.ToString( "0.000" )HTH, Phill W. Jan 17 '07 #5

 P: n/a AMDRIT wrote: First, I would use doubles, I would use decimals. .. . . const decPi as decimal = 3.14d Why use Decimals when all the Math methods return Doubles? Why avoid using the Math library? The last time I looked, PI <3.14! Regards, Phill W. Jan 18 '07 #7

 P: n/a Because Dim dNumber1 As Decimal = Math.PI Dim dNumber2 As Decimal = Math.PI ^ 2 Dim dNumber3 As Decimal = dNumber2 - dNumber1 + 5& lblsurface.Text = dNumber3 is not the same as Dim dNumber1 As Double = Math.PI Dim dNumber2 As Double = Math.PI ^ 2 Dim dNumber3 As Double = dNumber2 - dNumber1 lblsurface.Text = dNumber3 and if you plan on reusing any of the numbers where they mean anything, then I recommend decimals. "Phill W." First, I would use doubles, I would use decimals. . . . >const decPi as decimal = 3.14d Why use Decimals when all the Math methods return Doubles? Why avoid using the Math library? The last time I looked, PI <3.14! Regards, Phill W. Jan 18 '07 #8

 P: n/a My apologies, that second dNumber3 should have read Dim dNumber3 As Double = dNumber2 - dNumber1 + 5& "AMDRIT" Because Dim dNumber1 As Decimal = Math.PI Dim dNumber2 As Decimal = Math.PI ^ 2 Dim dNumber3 As Decimal = dNumber2 - dNumber1 + 5& lblsurface.Text = dNumber3 is not the same as Dim dNumber1 As Double = Math.PI Dim dNumber2 As Double = Math.PI ^ 2 Dim dNumber3 As Double = dNumber2 - dNumber1 lblsurface.Text = dNumber3 and if you plan on reusing any of the numbers where they mean anything, then I recommend decimals. "Phill W." AMDRIT wrote: >>First, I would use doubles, I would use decimals. . . . >>const decPi as decimal = 3.14d Why use Decimals when all the Math methods return Doubles?Why avoid using the Math library? The last time I looked, PI <3.14!Regards, Phill W. Jan 18 '07 #9

 P: n/a AMDRIT wrote: Because Dim dNumber1 As Decimal = Math.PI Dim dNumber2 As Decimal = Math.PI ^ 2 Dim dNumber3 As Decimal = dNumber2 - dNumber1 + 5& lblsurface.Text = dNumber3 is not the same as Dim dNumber1 As Double = Math.PI Dim dNumber2 As Double = Math.PI ^ 2 Dim dNumber3 As Double = dNumber2 - dNumber1 lblsurface.Text = dNumber3 and if you plan on reusing any of the numbers where they mean anything, then I recommend decimals. Strange, then, that Our Friends in Redmond seem satified with mere Doubles for the Math methods... :-) Regards, Phill W. Jan 18 '07 #10 