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.我想这只是一个只是做它而不是说它的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |