Jump to content

Recommended Posts

Posted

$Variable = 4.1
$Variable -= 4
MsgBox(0, "", $Variable)
 

When I run the above code, I see the number 0.0999999999999996.  I'm running the lastest version of autoit.

What am I doing wrong?

Or, if it's a bug, is there a workaround?

  • Moderators
Posted (edited)

zeropointone,

It is not a bug - at least not in Autoit as it affects all computers. Google "floating point arithmetic" and you will learn more than you wish or need to know. ;)

M23

Edit: Welcome to the forum, by the way. :)

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

  Reveal hidden contents

 

Posted

Oh, that makes sense.  I just ran the equivalent code with a float in C++, and sure enough the same thing happened!

The solution I'm using is:

$Variable = 4.1
$Variable -= 4
$Variable = Round($Variable, 1)

somdcomputerguy - Ceiling() is no good in this case, as it returns a whole number.

Thanks for the help!

  • Moderators
Posted

Ceiling is still not the right function to use. It is returning the whole number 1, not .1; just because a period is placed in front of it doesn't mean it returns what it should.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...