回覆列表
  • 1 # 使用者7364316064609

    0.999999999迴圈 無論迴圈多少位,始終不到1,也就是說 小於1。

    如果你寫程式:

    double x= 0.99999999999999999999999999999999;

    if (x>1.0) printf("x>1\n");

    else if (x

    else printf("x==1\n");

    你會得到 x==1

    原因出在計算機用2進製表示10進位制小數時有截斷誤差EPS.

    正確寫法 用float.h 裡定義的截斷誤差 DBL_EPSILON:

    #include

    #include

    // #include

    main()

    {

    double x= 0.99999999999999999999999999999999;

    if (x-1.0 > DBL_EPSILON ) printf("x>1\n");

    else if (x-1.0

    else printf("x==1\n");

    return 0;

    }

    得到 x

  • 中秋節和大豐收的關聯?
  • 必勝宅和必勝客有什麼區別?