首页 > 解决方案 > long double 除法不能得到期望值

问题描述

我想计算两个long double数字之间的除法,但无法得到预期的结果。谁能帮助我?

int main() {

    long double m=(long double)(94911150.000000);
    long double n=(long double)(94911151.000000);
    long double k= m/n;
    printf("%Lf %Lf %Lf \n",m,n,k);
    return 0;
}

预期结果是 94911150.000000 94911151.000000 0.999999989

但实际结果是 94911150.000000 94911151.000000 1.000000

标签: c++printfdoublelong-integerdivision

解决方案


格式说明符的默认精度%f为 6。尝试类似%.10Lf


推荐阅读