Author: lwall
Date: 2009-11-18 19:05:37 +0100 (Wed, 18 Nov 2009)
New Revision: 29127

Modified:
   docs/Perl6/Spec/S02-bits.pod
Log:
[S02] correction from ron.koerner++ on s/multiple/power/
adopt 2's and 5's factoring as normative for both .Str and .perl of Rats


Modified: docs/Perl6/Spec/S02-bits.pod
===================================================================
--- docs/Perl6/Spec/S02-bits.pod        2009-11-18 18:00:56 UTC (rev 29126)
+++ docs/Perl6/Spec/S02-bits.pod        2009-11-18 18:05:37 UTC (rev 29127)
@@ -13,8 +13,8 @@
 
     Created: 10 Aug 2004
 
-    Last Modified: 17 Nov 2009
-    Version: 189
+    Last Modified: 18 Nov 2009
+    Version: 190
 
 This document summarizes Apocalypse 2, which covers small-scale
 lexical items and typological issues.  (These Synopses also contain
@@ -709,12 +709,33 @@
 entire way through.  The C<.nu> and C<.de> methods will return these
 unreduced values.  You can use C<$rat.=norm> to normalize the fraction.
 The C<.perl> method will produce a decimal number if the denominator is
-a multiple of 10.  Otherwise it will normalize and return a rational
-literal of the form -47/3.  Stringifying a rational always converts
-to C<Num> and stringifies that, so the rational internal form is
+a power of 10, or normalizable to a power of 10 (that is, having factors
+of only 2 and 5).  Otherwise it will normalize and return a rational
+literal of the form C<-47/3>.  Stringifying a rational does a similar
+calculation, with the same result on decimal-normalizable fractions,
+but where C<.perl> would produce the C<-47/3> form, stringification instead
+converts to C<Num> and stringifies that, so the rational internal form is
 somewhat hidden from the casual user, who would generally prefer
-to see decimal notation.
+to see pure decimal notation.
 
+    say 1/5;    # 0.2 exactly (not via Num)
+    say 1/3;    # 0.333333333333333 via Num
+
+    say <2/6>.perl
+                # 1/3
+
+    say 3.14159_26535_89793
+                # 3.141592653589793 including last digit
+
+    say 111111111111111111111111111111111111111111111.123
+                # 111111111111111111111111111111111111111111111.123
+
+    say 555555555555555555555555555555555555555555555/5
+                # 111111111111111111111111111111111111111111111
+
+    say <555555555555555555555555555555555555555555555/5>.perl
+                # 111111111111111111111111111111111111111111111/1
+
 =item *
 
 PerlĀ 6 should by default make standard IEEE floating point concepts

Reply via email to