查百度发现大部分 long double 实际上只有 64 位尾数,也就是和 long long 位数一致。
有道题需要维护斐波那契数列前 107 项的大致值
脑抽写了个 (ll d,int k) 表示前 18 位为 d ,一共 k 位,后 k-18 位默认 0。用这个写法来维护,精度误差很大
于是换成了 (long double d,int k) 表示 x≈d×10k,d∈[1,10)。然后精度就没问题了
虽然确实是蒟蒻脑抽写得比较神经,但为什么换成 long double 精度就优化了呢,实际上数码位没有区别的吧