或者,只使用int。将“.”后面的k位视为int,就像将它们移到“.”前面一样,所以你得到的值乘以2^k。将其乘以5^k,你就得到了10^k。用k个十进制数字加上“0.”打印出来,你就可以得到s的完整和精确的十进制值:
s = "0.0110101000101000101000100000101000001000101000100000100000101000001000101000001000100000100000001000101000101000100000000000001000100000101000000000101000001000001000100000100000101000000000101000101000000000001000000000001000101000100000101000000000100000100000100000101000001000101000000000100000000000001000101000100000000000001000001000000000101000100000100000001000001000001000100000100000001000100000001000000000101000000000101000001000100000100000001000101000100000000000100000001000100000001000100000100000000000101000000000000000001000001000000000100000100000101000001000000000100000100000101000001000001000101000000000001000000000101000100000100000101000000000001000100000100000001000000000100000001000000000100000001000001000001000100000001000001000100000001000100000000000001000000000100000000000101000000000101000101000000000100000000000001000101000100000000000001000101000100000000000000000001000100000001000000000100000001000100000100000100000000000001000100000100000100000001000001000000000001000100000101000"
s = s[2:]
k = len(s)
print(f'0.{int(s, 2) * 5**k :0{k}}')
输出(
Attempt This Online!
):
0.4146825098511116602481096221543077083657742381379169778682454144886409606193573341962900484284757779396161593520829859578357499784530220099041208146500339589937019741191862856155792371916372514881610710734284324802180169798568151342467947492439027788203115377831806629878700354471810730031528229365865717011958298527013917947575814542670688598836845005741967909097059012651346935948713174882002338651383968278639060580547694400606775567007462220308218404725893980244051813387031256338228470186575179444181158712845432952206569239552056223657281232230948558722153467802070765239806635595635256623658097764956981835991775930729107487361716646010010587982471669760872525696926694804362426551071075418172042158356715710211009002446239549475692248093519589690216864505247790045313739565691930382391014893277786456455001924946926654421862064185906002093179166469799727236169453540031938273217425197819335947742929218937243069819532429021211529270114967553537797300556385950007153595752752706093957613120437599718570709228515625000