zeropointone Posted February 5, 2014 Share Posted February 5, 2014 $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? Link to comment Share on other sites More sharing options...
somdcomputerguy Posted February 5, 2014 Share Posted February 5, 2014 (edited) Hmm. Try this.. $Variable = 4.1 $Variable -= 4 MsgBox(0, "", Ceiling($Variable)) Edited February 5, 2014 by somdcomputerguy - Bruce /*somdcomputerguy */ If you change the way you look at things, the things you look at change. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 5, 2014 Moderators Share Posted February 5, 2014 (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. M23Edit: Welcome to the forum, by the way. Edited February 5, 2014 by Melba23 BinaryBrother 1 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: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
zeropointone Posted February 5, 2014 Author Share Posted February 5, 2014 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! Link to comment Share on other sites More sharing options...
somdcomputerguy Posted February 6, 2014 Share Posted February 6, 2014 somdcomputerguy - Ceiling() is no good in this case, as it returns a whole number. Oops..$Variable = 4.1 $Variable -= 4 MsgBox(0, "", "." & Ceiling($Variable)) - Bruce /*somdcomputerguy */ If you change the way you look at things, the things you look at change. Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted February 6, 2014 Moderators Share Posted February 6, 2014 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! Link to comment Share on other sites More sharing options...
somdcomputerguy Posted February 6, 2014 Share Posted February 6, 2014 .. just because a period is placed in front of it doesn't mean it returns what it should. I realize that, I was just being sortof a smartass.. - Bruce /*somdcomputerguy */ If you change the way you look at things, the things you look at change. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now