<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Zdenek<div class=""><br class=""></div><div class="">In addition to my experiments on WinAos, I now played with LinuxAos or to be precise with DarwinAos on the Mac. Here my program:</div><div class=""><span style="font-family: Monaco;" class="">- - - - - - - - - - -&nbsp;</span></div><div class=""><div style="margin: 0px; font-family: Monaco;" class="">MODULE Untitled;</div><div style="margin: 0px; font-family: Monaco;" class="">IMPORT Commands;</div><div style="margin: 0px; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-family: Monaco;" class="">PROCEDURE Do*(ctx: Commands.Context);</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; VAR</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; epsilon, r: REAL;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; digits: INTEGER;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; BEGIN</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; epsilon := 1; digits :=0;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; WHILE 1+epsilon # 1 DO epsilon := epsilon /10; INC(digits) END;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; ctx.out.Int(digits, 0); ctx.out.Ln;</div><p style="margin: 0px; font-family: Monaco; min-height: 19px;" class="">&nbsp;<br class="webkit-block-placeholder"></p><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; r := 480/100*100;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; ctx.out.Float(r, 20); ctx.out.Ln;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; ctx.out.Float(r-480, 20); ctx.out.Ln;</div><p style="margin: 0px; font-family: Monaco; min-height: 19px;" class="">&nbsp;&nbsp; &nbsp;<br class="webkit-block-placeholder"></p><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; epsilon := 1; digits :=0;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; WHILE 1.D0+epsilon # 1 DO epsilon := epsilon /10; INC(digits) END;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; ctx.out.Int(digits, 0); ctx.out.Ln;</div><p style="margin: 0px; font-family: Monaco; min-height: 19px;" class="">&nbsp; &nbsp; &nbsp; &nbsp;<br class="webkit-block-placeholder"></p><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; r := SHORT(480.D0/100*100);</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; ctx.out.Float(r, 20); ctx.out.Ln;</div><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; &nbsp; ctx.out.Float(r-480, 20); ctx.out.Ln;</div><p style="margin: 0px; font-family: Monaco; min-height: 19px;" class="">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<br class="webkit-block-placeholder"></p><div style="margin: 0px; font-family: Monaco;" class="">&nbsp; END Do;</div><div style="margin: 0px; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-family: Monaco;" class="">BEGIN</div><div style="margin: 0px; font-family: Monaco;" class="">END Untitled.Do</div></div><div class=""><div class=""><span style="font-family: Monaco;" class="">- - - - - - - - - - -&nbsp;</span></div><div class=""></div></div><div class=""><br class=""></div><div class="">The output is</div><div class="">8</div><div class="">&nbsp; 4.80000030518E+002</div><div class="">&nbsp; 3.05175781250E-005</div><div class="">16</div><div class="">&nbsp; 4.80000000000E+002</div><div class="">&nbsp; 0.00000000000E+000</div><div class=""><br class=""></div><div class="">As the result of the WHILE shows, in this AOS environment expressions are evaluated with 8 digits of accuracy (REAL).</div><div class="">Hence the compiler by default evaluates internally constant expressions like „480/100*100“ with REALs as well.</div><div class="">If I force the compiler to use LONGREAL (by writing 1.D0 and 480.D0) the results are more accurate.</div><div class=""><br class=""></div><div class="">br</div><div class="">Jörg</div><div class=""><br class=""></div></body></html>