Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #16313

Re: floating point

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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