perl6精度base4转换

前端之家收集整理的这篇文章主要介绍了perl6精度base4转换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
转换为base4时,Perl 6的精度会下降.如何保持精度?

'0.2322130120323232322110'.parse-base(4)
--> perl6 output :         0.728295262649453
--> high precission value: 0.728295262649453434278257191181182861328125

问题是,当将0.728295262649453转换为base(4)时,输出不是原始数字.

0.72829526264945.base(4)
--> output:   0.232213012032323232210333
--> original: 0.2322130120323232322110

如何在转换后获得相同的值?

解决方法

问题可能在于您创建“perl6输出”的方式:

say "0.2322130120323232322110".parse-base(4)    # 0.72829526264945

这是因为,无论给出什么,都会调用.gist方法.或者你试图将其字符串化(调用.Str,它给出与.gist相同的结果).如果你在结果上调用.perl方法

say "0.2322130120323232322110".parse-base(4).perl

你得到预期的0.728295262649453434278257191181182861328125. .perl方法返回一个您可以EVAL获取最初给定值的字符串.

无论如何,如果你这样做:

say "0.2322130120323232322110".parse-base(4).base(4)

你会看到你确实得到了原来的价值0.2322130120323232322110.我想这只是一个只是做它而不是说它的情况.

猜你在找的Perl相关文章