On Sun, Oct 31, 2021 at 10:10 PM ToddAndMargo via perl6-users < perl6-us...@perl.org> wrote:
> On 10/31/21 01:43, Shlomi Fish wrote: > > > > >> ("" ~ sqrt(2)).comb().grep(* ne ".").map(+*) > > (1 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 1) > > Cool! > > my Int @x = ("" ~ sqrt(2)).comb().grep(* ne ".").map(+*) > [1 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 1] > > Is there a way to set how many digits I get? > In perl we can do: C:\>perl -e "@x = split(/\.|/, sqrt(2)); print for @x"; 14142135623731 C:\>perl -e "@x = split(/\.|/, sprintf('%.7g', sqrt(2))); print for @x"; 1414214 C:\>perl -e "@x = split(/\.|/, sprintf('%.8g', sqrt(2))); print for @x"; 14142136 But the same split() expression is unacceptable to Raku. Closest I could get with that approach: C:\>raku -e "say split(/\.|''/, sqrt 2);" ( 1 4 1 4 2 1 3 5 6 2 3 7 3 0 9 5 1 ) C:\_32>raku -e "say split(/\.|''/, sprintf('%.5g', sqrt 2));" ( 1 4 1 4 2 ) It's that additional space between the first 2 digits that has me beat. (I don't know raku at all.) Cheers, Rob