1. DECIMALS
- Posted by Jean Hendrickx <jean.hendrickx at INFOBOARD.BE> Feb 23, 1997
- 1038 views
I wrote a little function to round a number to a expected number of decimals. File added. But I decouver that I cannot enter more than 5 decimals in a atom. More decimals are automaticaly rounded to 5 decimals. Are there any solution ? Thanks J Hendrickx. --RONDECI.EX -- round a number at a fixed number of decimals include get.e atom vv, i, dec vv= 2.594567894 -- the number dec=3 -- number of decimal function rondxdec(atom n, integer dec) -- (number, nber of decimals to keep) atom pivot, balance pivot =0.5*(power(10,-dec)) balance=power(10,dec) n=(floor((n + pivot) * balance))/balance return n end function clear_screen() i = rondxdec(vv,dec) ? i
2. Re: DECIMALS
- Posted by "Lucius L. Hilley III" <luciuslhilleyiii at JUNO.COM> Feb 23, 1997
- 1058 views
On Sun, 23 Feb 1997 16:10:45 +0100 Jean Hendrickx <jean.hendrickx at INFOBOARD.BE> writes: >I wrote a little function to round a number to a expected number >of decimals. File added. But I decouver that I cannot enter more >than 5 decimals in a atom. More decimals are automaticaly rounded >to 5 decimals. Are there any solution ? Thanks >J Hendrickx. >--RONDECI.EX -- round a number at a fixed number of decimals >include get.e >atom vv, i, dec >vv= 2.594567894 -- the number >dec=3 -- number of decimal > >function rondxdec(atom n, integer dec) -- (number, nber of decimals to >keep) >atom pivot, balance >pivot =0.5*(power(10,-dec)) >balance=power(10,dec) >n=(floor((n + pivot) * balance))/balance > return n >end function > >clear_screen() >i = rondxdec(vv,dec) >? i > Instead of using ? i OR print(1, i) use printf(1, "%.16f\n", i) You will notice that you have truly rounded past 5 decimals. The print statement it designed to only display up to 5 decimal places. but printf will print up to 16 decimal places. ONE trick to it though atom a, b a = 1234567890.1234567 -- 17 places just as b = .12345678901234567 -- 17 places printf(1, "%.16f\n", a) -- shows "1234567890.1234570000000000" AND printf(1, "%.16f\n", b) -- shows ".1234567890123457 Enjoy. --Lucius Lamar Hilley III -- E-mail at luciuslhilleyiii at juno.com -- I can only support file transfers of less than 64K and in UUE format.
3. Re: DECIMALS
- Posted by Jean Hendrickx <jean.hendrickx at INFOBOARD.BE> Feb 26, 1997
- 1019 views
<luciuslhilleyiii at juno.com> wrotes <Instead of using ? OR print(1,i) use printf(1,"%.16<n",i) Thanks for thr trick, panic is over ! Jean Hendrickx