Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #16311
| From | Lew <lewbloch@gmail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: floating point |
| Date | 2012-07-24 13:21 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <fdecd225-042b-4aad-9cb3-b23fd669388e@googlegroups.com> (permalink) |
| References | <d94d1dd0-deb5-4259-b5a0-fb3d57e99c55@googlegroups.com> <jumuu7$6np$1@dont-email.me> |
markspace wrote: > 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 Excellent advice. "Just trying it" could obscure some of the intermediate promotions. > 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. From the JLS: "The left-hand operand of a binary operator appears to be fully evaluated before any part of the right-hand operand is evaluated." "The Java programming language respects the order of evaluation indicated explicitly by parentheses and implicitly by operator precedence." So, yes, the parenthesized addition is done as an 'int' addition. "5.6. Numeric Promotions "Numeric promotion is applied to the operands of an arithmetic operator. Numeric promotion contexts allow the use of: " an identity conversion (§5.1.1) " a widening primitive conversion (§5.1.2) " an unboxing conversion (§5.1.8) "Numeric promotions are used to convert the operands of a numeric operator to a common type so that an operation can be performed. The two kinds of numeric promotion are unary numeric promotion (§5.6.1) and binary numeric promotion (§5.6.2)." So, by those sections you can see that the division must be evaluated as 'float'. For those who decry the use of the JLS to learn this, just note that the relevant sections are not especially obscure and they answer the question completely and authoritatively. But feel free to struggle with alternatives if you really want to work harder. <http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html> <http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.7> <http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6> <http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2> -- Lew
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