how to convert an integer to a float?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • yinglcs@gmail.com

    how to convert an integer to a float?

    Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
    i1)' always return 0, can you please tell me how can i convert it from
    an integer to float?


    def compareValue(n1 , n2):
    i1 = int(n1)
    i2 = int(n2)

    dx = abs(i2 - i1)/min(i2, i1)
    print dx
    return dx < 0.05

  • jeff

    #2
    Re: how to convert an integer to a float?

    On Feb 27, 7:05 pm, "ying...@gmail. com" <ying...@gmail. comwrote:
    Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
    i1)' always return 0, can you please tell me how can i convert it from
    an integer to float?
    >
    def compareValue(n1 , n2):
    i1 = int(n1)
    i2 = int(n2)
    >
    dx = abs(i2 - i1)/min(i2, i1)
    print dx
    return dx < 0.05
    x = x + 0.0

    Comment

    • Farshid Lashkari

      #3
      Re: how to convert an integer to a float?

      yinglcs@gmail.c om wrote:
      Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
      i1)' always return 0, can you please tell me how can i convert it from
      an integer to float?
      When two integers are involved in a division, the result will also be a
      division. If one of the operands is a float, then the result will be a
      float instead. So try casting one of the values to a float before
      performing the division:

      dx = float(abs(i2 - i1))/min(i2, i1)

      -Farshid

      Comment

      • Farshid Lashkari

        #4
        Re: how to convert an integer to a float?

        Farshid Lashkari wrote:
        When two integers are involved in a division, the result will also be a
        division.
        My bad, I meant the result will also be an *integer*

        -Farshid

        Comment

        • bearophileHUGS@lycos.com

          #5
          Re: how to convert an integer to a float?

          yinglcs, you can use float() or the new division:
          >>1 / 2
          0
          >>1 / float(2)
          0.5
          >>from __future__ import division
          >>1 / 2
          0.5

          Bye,
          bearophile

          Comment

          • Matimus

            #6
            Re: how to convert an integer to a float?

            On Feb 27, 4:05 pm, "ying...@gmail. com" <ying...@gmail. comwrote:
            Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
            i1)' always return 0, can you please tell me how can i convert it from
            an integer to float?
            >
            def compareValue(n1 , n2):
            i1 = int(n1)
            i2 = int(n2)
            >
            dx = abs(i2 - i1)/min(i2, i1)
            print dx
            return dx < 0.05
            dx = float(abs(i2 -i1))/min(i2, i1)

            Or you could just put "from __future__ import division" at the top of
            your file.

            see http://www.python.org/dev/peps/pep-0238/ for details.

            -Matt

            Comment

            • Bjoern Schliessmann

              #7
              Re: how to convert an integer to a float?

              yinglcs@gmail.c om wrote:
              def compareValue(n1 , n2):
              i1 = int(n1)
              i2 = int(n2)
              >
              dx = abs(i2 - i1)/min(i2, i1)
              print dx
              return dx < 0.05
              You could also prepend

              from __future__ import division

              Regards,


              Björn

              --
              BOFH excuse #237:

              Plate voltage too low on demodulator tube

              Comment

              • Grant Edwards

                #8
                Re: how to convert an integer to a float?

                On 2007-02-28, jeff <jeffrey.aylesw orth@gmail.comw rote:
                On Feb 27, 7:05 pm, "ying...@gmail. com" <ying...@gmail. comwrote:
                >Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
                >i1)' always return 0, can you please tell me how can i convert it from
                >an integer to float?
                >>
                >def compareValue(n1 , n2):
                > i1 = int(n1)
                > i2 = int(n2)
                >>
                > dx = abs(i2 - i1)/min(i2, i1)
                > print dx
                > return dx < 0.05
                >
                x = x + 0.0
                How, um, perlesque.

                I rather think that this is a bit more pythonic:

                x = float(x)

                --
                Grant Edwards grante Yow! I'm a fuschia bowling
                at ball somewhere in Brittany
                visi.com

                Comment

                • Ben Finney

                  #9
                  Re: how to convert an integer to a float?

                  Please don't top-post; instead, reply below the lines you're
                  responding to, and trim any irrelevant lines from the original.

                  Subscriber123 <subscriber123@ gmail.comwrites :
                  How did the new division ever get approved?!
                  By being introduced as a PEP, which is now numbered PEP 238.

                  <URL:http://www.python.org/dev/peps/pep-0238/>
                  That's not pythonic! What if you then need to divide two integers
                  and find an element in a list or dict?
                  Then your code is dependent on ambiguous behaviour which has changed
                  in newer Python versions.

                  As described in the above document, the '//' operator will
                  unambiguously request floor division, even in older versions of
                  Python.
                  I know that at the moment it is not implemented unless imported from
                  __future__, but I expect that it eventually might be.
                  Please read PEP 238 to see the implementation plan.
                  That would be a problem with backwards compatibility.
                  The older Python versions aren't going away. Anyone who wants their
                  old code to work with new versions of Python has a responsibility to
                  see what parts of their code need to be updated.

                  --
                  \ "My roommate got a pet elephant. Then it got lost. It's in the |
                  `\ apartment somewhere." -- Steven Wright |
                  _o__) |
                  Ben Finney

                  Comment

                  • Andrew Koenig

                    #10
                    Re: how to convert an integer to a float?

                    <yinglcs@gmail. comwrote in message
                    news:1172621139 .954362.196170@ k78g2000cwa.goo glegroups.com.. .
                    Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
                    i1)' always return 0, can you please tell me how can i convert it from
                    an integer to float?
                    I don't think that's what you really want to do.

                    What you really want is for dx to be a float rather than being truncated to
                    an integer. Division is going to behave that way in the future, so if you
                    want it to behave that way now, you can write

                    from __future__ import division

                    at the beginning of your program.

                    If for some reason you don't want to rely on using a version of Python that
                    knows about this future behavior, you might consider

                    dx = float(abs(i2 - i1))/min(i2, i1)

                    as an alternative.


                    Comment

                    • Antoon Pardon

                      #11
                      Re: how to convert an integer to a float?

                      On 2007-03-05, Andrew Koenig <ark@acm.orgwro te:
                      ><yinglcs@gmail .comwrote in message
                      news:1172621139 .954362.196170@ k78g2000cwa.goo glegroups.com.. .
                      >Hi, I have the following functions, but ' dx = abs(i2 - i1)/min(i2,
                      >i1)' always return 0, can you please tell me how can i convert it from
                      >an integer to float?
                      >
                      I don't think that's what you really want to do.
                      >
                      What you really want is for dx to be a float rather than being truncated to
                      an integer. Division is going to behave that way in the future, so if you
                      want it to behave that way now, you can write
                      >
                      from __future__ import division
                      >
                      at the beginning of your program.
                      >
                      If for some reason you don't want to rely on using a version of Python that
                      knows about this future behavior, you might consider
                      >
                      dx = float(abs(i2 - i1))/min(i2, i1)
                      I prefer to multiply by 1.0 That has the advantage it continues to work
                      if your numbers happen to be complex.

                      --
                      Antoon Pardon

                      Comment

                      Working...