create a J# windows applicaion.add a button , a label and two textboxes to
form and paste this code into the buttons event handler:
private void button1_Click(Object sender, System.EventArgs e)
{
label1.set_Text(Float.toString(
Float.parseFloat(textBox1.get_Text())
*
Float.parseFloat(textBox2.get_Text())
));
}
when you run the project and test it with 3 and 6.7 ; you get freaking
result of "20.0999985" in the label instead of "20.1" .if try 3 and
6.71,you'll get "20.1300011" instead of "20.13" .
what the hell is wrong with J# float numbers?
Phill W. - 11 Dec 2007 12:59 GMT
> when you run the project and test it with 3 and 6.7 ; you get freaking
> result of "20.0999985" in the label instead of "20.1" .if try 3 and
> 6.71,you'll get "20.1300011" instead of "20.13" .
>
> what the hell is wrong with J# float numbers?
The same thing that's wrong with floating point numbers in just about
/every/ computing language - they are only /approximations/ of the
intended value.
You have to deal with this vagueness, usually by formatting the result
to the required degree of accuracy:
label1.set_Text(
( Float.parseFloat( textBox1.get_Text() )
*
Float.parseFloat( textBox2.get_Text() )
).toString( "0.00" );
(Or something fairly close to this - I've never used J#) :-)
HTH,
Phill W.