From: витя е. <vi...@ma...> - 2016-04-15 12:59:52
|
Вот примерно так и сделал, кстати >Четверг, 14 апреля 2016, 21:10 +03:00 от Ruvim Pinka <ruv...@gm...>: > > >2016-04-14 20:56 GMT+03:00 Ruvim Pinka < ruv...@gm... > : > >>Целую и дробную части можно представить парой целых чисел, при этом дробная часть должна быть числителем простой дроби с заранее фиксированным знаменателем. Например, 3.33 может быть представлено парой ( 3 330 ) в тысячных долях, или ( 3 33 ) в сотых долях. При этом знаменатель (1000 или 100) должен быть един и фиксирован для всех таких пар. Эта пара не является числом двойной длины , поэтому при форматном выводе каждое из чисел этой пары надо обрабатывать отдельно. >> >>: picture-pair ( i f -- addr u ) >> S>D <# >> # # # \ три знака для тысячных долей, знаменатель 1000 >> OR ABORT" incorrect fractional part" \ ошибка, если остаток не ноль (f > 999) >> [CHAR] . HOLD >> DUP >R ABS S>D #S R> SIGN #> >>; >> >>\ test >> >>3 33 picture-pair TYPE \ 3.033 >> > > >Следует добавить, что с тем же успехом такое дробное число (представимое в виде простой дроби с фиксированным знаменаелем) можно представить в виде одного целого числа (а не пары). Эта техника многократно описана в литературе. > >При этом дробное число 3.33 в тысячных долях представляется числом 3330, а 3.033 — числом 3033 > >: picture/1000 ( n -- addr u ) > DUP >R ABS S>D <# > # # # \ три знака для тысячных долей, знаменатель 1000 > [CHAR] . HOLD > #S R> SIGN #> >; > >\ test >3033 picture/1000 TYPE \ 3.033 > > >Для увеличения диапазона чисел, представимых таким образом, могут использоваться целые двойной длины. > >-- >Ruvim >------------------------------------------------------------------------------ >Find and fix application performance issues faster with Applications Manager >Applications Manager provides deep performance insights into multiple tiers of >your business applications. It resolves application problems quickly and >reduces your MTTR. Get your free trial! >https://ad.doubleclick.net/ddm/clk/302982198;130105516;z >_______________________________________________ >Spf-dev mailing list >Sp...@li... >https://lists.sourceforge.net/lists/listinfo/spf-dev |