<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;" dir="ltr">
<p>Hi Don- Nope, You got it right. It just threw me off a bit when I was originally using 0.2 as the increment value and getting the long strings with 3DText. As Terri mentioned, there is always a way to get around a binary kludge like this, and probably good
 to inform students that computers aren't always perfect.</p>
<p>Including a patched version that works a little better.</p>
<p><br>
</p>
Mike<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="width: 98%; display: inline-block;">
<div id="divRplyFwdMsg" dir="ltr"><font color="#000000" face="Calibri, sans-serif" style="font-size: 11pt;"><b>From:</b> alice-teachers <alice-teachers-bounces+mrgrog=outlook.com@lists.andrew.cmu.edu> on behalf of Donald Slater <djslater107@mac.com><br>
<b>Sent:</b> Sunday, June 4, 2017 8:52 AM<br>
<b>To:</b> Alice Teachers<br>
<b>Subject:</b> Re: alice-teacher Possible Problem with Alice 3.3</font>
<div> </div>
</div>
<div>Michael,
<div>If I understand what you are saying correctly, and if I am seeing what you are seeing when I run your program, you are seeing the results of floating point addition (in Java and other programming languages). (See the Rounding Error section in the following
 document: <a id="LPlnk498948" href="https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html" previewremoved="true">https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html</a>)</div>
<p></p>
<div id="LPBorder_GT_14966020936420.475383645581972" style="width: 100%; text-indent: 0px; overflow: auto; margin-bottom: 20px; display: inline-block;">
<table id="LPContainer_14966020936180.009684158556686473" role="presentation" style="width: 90%; overflow: auto; padding-top: 20px; padding-bottom: 20px; margin-top: 20px; border-top-color: rgb(200, 200, 200); border-bottom-color: rgb(200, 200, 200); border-top-width: 1px; border-bottom-width: 1px; border-top-style: dotted; border-bottom-style: dotted; position: relative; background-color: rgb(255, 255, 255);" cellspacing="0">
<tbody>
<tr valign="top" style="border-spacing: 0px;">
<td id="TextCell_14966020936220.38062014447345565" style="padding: 0px; vertical-align: top; display: table-cell; position: relative;" colspan="2">
<div id="LPRemovePreviewContainer_14966020936220.10706015825925585" style="float: right;">
</div>
<div id="LPTitle_14966020936220.20424583460279244" style="top: 0px; color: rgb(0, 120, 215); line-height: 21px; font-family: "wf_segoe-ui_light", "Segoe UI Light", "Segoe WP Light", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 21px; font-weight: 400;">
<a id="LPUrlAnchor_14966020936290.05506855051623244" style="text-decoration: none;" href="https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html" target="_blank">What Every Computer Scientist Should Know About Floating ...</a></div>
<div id="LPMetadata_14966020936300.9902409290815635" style="margin: 10px 0px 16px; color: rgb(102, 102, 102); line-height: 14px; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; font-weight: 400;">
docs.oracle.com</div>
<div id="LPDescription_14966020936360.8452525816514639" style="color: rgb(102, 102, 102); line-height: 20px; overflow: hidden; font-family: "wf_segoe-ui_normal", "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif; font-size: 14px; font-weight: 400; display: block; max-height: 100px;">
Abstract. Floating-point arithmetic is considered an esoteric subject by many people. This is rather surprising because floating-point is ubiquitous in computer systems.</div>
</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<br>
<div><br>
</div>
<div>When I run Java equivalent code, as in:<span class="Apple-tab-span" style="white-space: pre;">
</span></div>
<div><br>
</div>
<div>
<div><span class="Apple-tab-span" style="white-space: pre;"></span>double counter = 0.0;</div>
<div>        while (counter < 2.0) {</div>
<div>            counter += 0.1;</div>
<div>            System.out.println("counter: " + counter);</div>
<div>        }</div>
<div><br>
</div>
<div>I get the following output: </div>
<div><br>
</div>
</div>
<blockquote style="margin: 0px 0px 0px 40px; padding: 0px; border: currentColor; border-image: none;">
<div>
<div>
<div>counter: 0.1</div>
</div>
</div>
<div>
<div>
<div>counter: 0.2</div>
</div>
</div>
<div>
<div>
<div>counter: 0.30000000000000004</div>
</div>
</div>
<div>
<div>
<div>counter: 0.4</div>
</div>
</div>
<div>
<div>
<div>counter: 0.5</div>
</div>
</div>
<div>
<div>
<div>counter: 0.6</div>
</div>
</div>
<div>
<div>
<div>counter: 0.7</div>
</div>
</div>
<div>
<div>
<div>counter: 0.7999999999999999</div>
</div>
</div>
<div>
<div>
<div>counter: 0.8999999999999999</div>
</div>
</div>
<div>
<div>
<div>counter: 0.9999999999999999</div>
</div>
</div>
<div>
<div>
<div>counter: 1.0999999999999999</div>
</div>
</div>
<div>
<div>
<div>counter: 1.2</div>
</div>
</div>
<div>
<div>
<div>counter: 1.3</div>
</div>
</div>
<div>
<div>
<div>counter: 1.4000000000000001</div>
</div>
</div>
<div>
<div>
<div>counter: 1.5000000000000002</div>
</div>
</div>
<div>
<div>
<div>counter: 1.6000000000000003</div>
</div>
</div>
<div>
<div>
<div>counter: 1.7000000000000004</div>
</div>
</div>
<div>
<div>
<div>counter: 1.8000000000000005</div>
</div>
</div>
<div>
<div>
<div>counter: 1.9000000000000006</div>
</div>
</div>
<div>
<div>
<div>counter: 2.0000000000000004</div>
</div>
</div>
<div><br>
</div>
</blockquote>
If you make your counter a WholeNumber variable, which is our typical implementation, which might make sense as you are using a 1 second delay between each update, your code will work as you expect.
<div><br>
</div>
<div>Although this is not a bug, it may suggest that sometime Alice implement a decimal precision option that mimics the DecimalFormat class of Java… See the following Java example and output</div>
<div><br>
</div>
<div>
<div><span class="Apple-tab-span" style="white-space: pre;"></span>double counter = 0.0;</div>
<div>        while (counter < 2.0) {</div>
<div>            counter += 0.1;</div>
<div>            <b>DecimalFormat df = new DecimalFormat("#.##");</b></div>
<div>            System.out.println("counter: " + df.format(counter));</div>
<div>        }</div>
<div><br>
</div>
<div>Output:</div>
</div>
<blockquote style="margin: 0px 0px 0px 40px; padding: 0px; border: currentColor; border-image: none;">
<div>
<div>
<div>counter: 0.1</div>
</div>
</div>
<div>
<div>
<div>counter: 0.2</div>
</div>
</div>
<div>
<div>
<div>counter: 0.3</div>
</div>
</div>
<div>
<div>
<div>counter: 0.4</div>
</div>
</div>
<div>
<div>
<div>counter: 0.5</div>
</div>
</div>
<div>
<div>
<div>counter: 0.6</div>
</div>
</div>
<div>
<div>
<div>counter: 0.7</div>
</div>
</div>
<div>
<div>
<div>counter: 0.8</div>
</div>
</div>
<div>
<div>
<div>counter: 0.9</div>
</div>
</div>
<div>
<div>
<div>counter: 1</div>
</div>
</div>
<div>
<div>
<div>counter: 1.1</div>
</div>
</div>
<div>
<div>
<div>counter: 1.2</div>
</div>
</div>
<div>
<div>
<div>counter: 1.3</div>
</div>
</div>
<div>
<div>
<div>counter: 1.4</div>
</div>
</div>
<div>
<div>
<div>counter: 1.5</div>
</div>
</div>
<div>
<div>
<div>counter: 1.6</div>
</div>
</div>
<div>
<div>
<div>counter: 1.7</div>
</div>
</div>
<div>
<div>
<div>counter: 1.8</div>
</div>
</div>
<div>
<div>
<div>counter: 1.9</div>
</div>
</div>
<div>
<div>
<div>counter: 2</div>
</div>
</div>
</blockquote>
<div>
<div><br>
</div>
<div>This is probably not something that will happen soon, however.</div>
<div><br>
</div>
<div>I apologize if I have misunderstood you in some way.</div>
<div><br>
</div>
<div>Thank you,</div>
<div>Don Slater</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>
<blockquote type="cite">
<div>On Jun 3, 2017, at 2:39 PM, Michael L Owen <<a href="mailto:mrgrog@outlook.com">mrgrog@outlook.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div id="divtagdefaultwrapper" style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Calibri,Arial,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols; font-size: 12pt; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;" dir="ltr">
<div style="margin-top: 0px; margin-bottom: 0px;">Hi All- I was looking at a post recently that addressed adding a timer loop to a program that would display the timer while counting up to the finish.</div>
<div style="margin-top: 0px; margin-bottom: 0px;">I decided to try few options, but into a problem with the display almost immediately. I'm running the 64-bit Alice 3.3.</div>
<div style="margin-top: 0px; margin-bottom: 0px;">On my machine the number displayed appears to be encountering a rounding error of some sort that causes the number to be expanded the maximum.</div>
<div style="margin-top: 0px; margin-bottom: 0px;"><br>
</div>
<div style="margin-top: 0px; margin-bottom: 0px;">Maybe a Bug?</div>
<div style="margin-top: 0px; margin-bottom: 0px;">Mike Owen  </div>
<div style="margin-top: 0px; margin-bottom: 0px;"><br>
</div>
</div>
<span id="cid:2A8BF2CA-EE03-4BA2-BFA9-3DC8F16FF767@T-mobile.com"><TimerExample.a3p></span><span style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; float: none; display: inline !important; white-space: normal;">_______________________________________________</span><br style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;">
<span style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; float: none; display: inline !important; white-space: normal;">alice-teachers mailing
 list</span><br style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;">
<a style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;" href="mailto:alice-teachers@lists.andrew.cmu.edu">alice-teachers@lists.andrew.cmu.edu</a><br style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;">
<span style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; float: none; display: inline !important; white-space: normal;">To change settings
 or unsubscribe visit:</span><br style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;">
<a style="text-transform: none; text-indent: 0px; letter-spacing: normal; font-family: Helvetica; font-size: 14px; font-style: normal; font-weight: normal; word-spacing: 0px; white-space: normal;" href="https://lists.andrew.cmu.edu/mailman/listinfo/alice-teachers">https://lists.andrew.cmu.edu/mailman/listinfo/alice-teachers</a></div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</body>
</html>