Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16313
| From | Martin Gregorie <martin@address-in-sig.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: floating point |
| Date | 2012-07-24 20:34 +0000 |
| Organization | UK Free Software Network |
| Message-ID | <jun0t7$bh5$1@localhost.localdomain> (permalink) |
| References | <d94d1dd0-deb5-4259-b5a0-fb3d57e99c55@googlegroups.com> <jumuu7$6np$1@dont-email.me> |
On Tue, 24 Jul 2012 13:01:11 -0700, markspace wrote:
> On 7/24/2012 12:57 PM, bob smith wrote:
>> I can never remember this.
>>
>> Let's say you have an integer and a float in an operation. Is the
>> result always a float?
>
>
> You can just try this to see what you get, or read the JLS. From
> memory, I'm 90% sure that ints will be promoted to floats. I'm not sure
> how order of operations affects this. In the expression (1+1)/2.0f,
> does the addition use floats or ints? I'm not sure, but I think ints.
I think this:
$ cat MathTest.java
public class MathTest
{
public static void main(String[] args)
{
double x = (9 / 2) / 5;
System.out.println("x = " + x);
double y = (9 / 2) / 5.0;
System.out.println("y = " + y);
double z = (9 / 2.0) / 5.0;
System.out.println("z = " + z);
}
}
$ javac MathTest.java
$ java MathTest
x = 0.0
y = 0.8
z = 0.9
shows pretty conclusively that widening from int to double isn't done
until the last possible moment.
The calculation of x is entirely integral, with widening to double only
occurring at the assignment. Calculating y can only produce that result
if the first division was integral and its result was then widened to
double before the second division. And, of course, the z calculation was
entirely done as floating point
--
martin@ | Martin Gregorie
gregorie. | Essex, UK
org |
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
floating point bob smith <bob@coolfone.comze.com> - 2012-07-24 12:57 -0700
Re: floating point markspace <-@.> - 2012-07-24 13:01 -0700
Re: floating point Lew <lewbloch@gmail.com> - 2012-07-24 13:21 -0700
Re: floating point Gene Wirchenko <genew@ocis.net> - 2012-07-24 13:50 -0700
Re: floating point Lew <noone@lewscanon.com> - 2012-07-25 06:33 -0700
Re: floating point Gene Wirchenko <genew@ocis.net> - 2012-07-25 10:44 -0700
Re: floating point Lew <lewbloch@gmail.com> - 2012-07-25 17:09 -0700
Re: floating point Gene Wirchenko <genew@ocis.net> - 2012-07-25 17:42 -0700
Re: floating point Jan Burse <janburse@fastmail.fm> - 2012-07-26 03:15 +0200
Re: floating point Arne Vajhøj <arne@vajhoej.dk> - 2012-07-25 21:05 -0400
Re: floating point Martin Gregorie <martin@address-in-sig.invalid> - 2012-07-24 20:34 +0000
Re: floating point Patricia Shanahan <pats@acm.org> - 2012-07-24 13:29 -0700
Re: floating point Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2012-07-25 12:22 +0300
Re: floating point Arne Vajhøj <arne@vajhoej.dk> - 2012-07-25 10:54 -0400
Re: floating point Roedy Green <see_website@mindprod.com.invalid> - 2012-07-25 13:29 -0700
csiph-web