加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6精度base4转换

发布时间:2020-12-16 06:19:47 所属栏目:大数据 来源:网络整理
导读:转换为base4时,Perl 6的精度会下降.如何保持精度? '0.2322130120323232322110'.parse-base(4)-- perl6 output : 0.728295262649453-- high precission value: 0.728295262649453434278257191181182861328125 问题是,当将0.728295262649453转换为base(4)时,
转换为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.我想这只是一个只是做它而不是说它的情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读