Morthawt Posted February 22, 2017 Share Posted February 22, 2017 I am formulating some ingredients for an in sect repellent and I am looking for results where by each component ingredient has no more than 2 decimal places. I have that done but instead of going up 1 gram at a time I decided to try and go up a 10th of a gram at a time, here's a simple count: For $a = 0 To 100 Step 0.1 ConsoleWrite($a & @CRLF) Next What I get instead is by the time it reaches 6.9, it should go to 7 but it goes: 5.99999999999999 6.09999999999999 6.19999999999999 6.29999999999999 I cannot make sense of it. I know once my loop gets to 100 gram area it always is a match but this for loop never yielded any results for me. Only when I added a consolewrite for the loop variable counter did I see this weirdness above. Does anyone know what is going on? Free and easy Autoit scripting video tutorials (plus more videos always coming!) General video tutorials, especially correct and safe TeamSpeak permissions tutorials. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted February 22, 2017 Moderators Share Posted February 22, 2017 Morthawt, Google "floating point arithmetic" - or search the forum as this has been discussed before many, many times. Simple solution - make all of the loops increase in integers and do some division inside the calulations. M23 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...
Gianni Posted February 22, 2017 Share Posted February 22, 2017 ... that is: For $a = 0 * 10 To 100 * 10 Step 0.1 * 10 ConsoleWrite($a / 10 & @CRLF) Next JohnOne 1 Chimp small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt.... Link to comment Share on other sites More sharing options...
Morthawt Posted February 22, 2017 Author Share Posted February 22, 2017 Thanks Free and easy Autoit scripting video tutorials (plus more videos always coming!) General video tutorials, especially correct and safe TeamSpeak permissions tutorials. 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