除算数で結果を四捨五入しない方法は?

ゼファニヤL

例(C):

#include<stdio.h>

int main()
{
    int a, b = 999;
    float c = 0.0;
    scanf("%d", &a);
    c = (float)a/b; 
    printf("%.3lf...", c);
    return 0;
}

998を入れると0.999になりますが、結果は0.998になります。どうやって?

スティーブサミット

丸めるのではなく切り捨てたいようです。

999/998の数学的な結果は0.9989989989です...小数点以下3桁に丸められます。つまり 0.999です。したがって、それ%.3fを印刷するために使用する場合、それが得られるものです。

Cで浮動小数点数を整数に変換すると、小数部分が切り捨てられます。したがって、数値が998.9989989で、それをintに変換すると、998が得られます。したがって、1000を掛け、intに切り捨て、1000で再度除算することにより、必要な結果を得ることができます。

c = c * 1000;
c = (int)c;
c = c / 1000;

または、それをに短縮することができます

c = (int)(c * 1000) / 1000.;

これは、998/999≈0.998などの問題では問題なく機能しますが、タイプfloatの制限された精度が独自の丸めの問題を導入し始める限界に近づいています。使用doubleする方が良い選択です。(タイプfloatの制限された精度は、ほとんどの場合、問題を引き起こします。)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JavaのMath.powは結果を四捨五入しますか?

分類Dev

私の結果は四捨五入されています、私は完全な長さの答えが欲しいです

分類Dev

四捨五入が予想されるすべての結果と一致しない

分類Dev

Cssポーリング結果は四捨五入されています

分類Dev

Excel VBAの転送数は、小数を四捨五入しないでください

分類Dev

Javaの値を四捨五入するために異なる結果が必要

分類Dev

四捨五入は、最も近い正しい結果に表現エラーを伴って変動します

分類Dev

時間を四捨五入して四捨五入する

分類Dev

2つのdoubleデータ型の値を追加すると、結果は四捨五入されて出力されます。正確な出力をdoubleで取得するにはどうすればよいですか?

分類Dev

parseFloatで四捨五入した後、適切な値が得られない

分類Dev

金額が四捨五入されているのはなぜですか?

分類Dev

分という時間値を時間に四捨五入する方法は?

分類Dev

Pythonがこの合計を四捨五入するのはなぜですか?

分類Dev

rのすべての数値を小数点なしで四捨五入

分類Dev

Panda Python-列を100で除算します(次に2.dpで四捨五入します)

分類Dev

Pythonが数値を四捨五入しないようにするにはどうすればよいですか?

分類Dev

XSLT 2.0:計算結果を小数点以下第2位に四捨五入

分類Dev

Javaを使用して価格を四捨五入する方法

分類Dev

pydatatableの浮動値を四捨五入する方法は?

分類Dev

SQLの四捨五入を実行する方法は?

分類Dev

Pythonでは少数が四捨五入されています

分類Dev

倍数から四捨五入した値を設定する方法

分類Dev

CSSで画像を四捨五入する方法

分類Dev

C#で小数の四捨五入値を取得する方法

分類Dev

四捨五入せずに小数を切り捨てるにはどうすればよいですか?

分類Dev

doubleをフォーマットして不要な「.0」を省略し、四捨五入しない

分類Dev

入力名パラメーターを使用してjQueryで機能しないことを四捨五入する

分類Dev

小さな負の数を四捨五入するために-0を取得する方法は?

分類Dev

簡単に言えば ; 四捨五入されていない小数を取得するためのより良い方法はありますか

Related 関連記事

  1. 1

    JavaのMath.powは結果を四捨五入しますか?

  2. 2

    私の結果は四捨五入されています、私は完全な長さの答えが欲しいです

  3. 3

    四捨五入が予想されるすべての結果と一致しない

  4. 4

    Cssポーリング結果は四捨五入されています

  5. 5

    Excel VBAの転送数は、小数を四捨五入しないでください

  6. 6

    Javaの値を四捨五入するために異なる結果が必要

  7. 7

    四捨五入は、最も近い正しい結果に表現エラーを伴って変動します

  8. 8

    時間を四捨五入して四捨五入する

  9. 9

    2つのdoubleデータ型の値を追加すると、結果は四捨五入されて出力されます。正確な出力をdoubleで取得するにはどうすればよいですか?

  10. 10

    parseFloatで四捨五入した後、適切な値が得られない

  11. 11

    金額が四捨五入されているのはなぜですか?

  12. 12

    分という時間値を時間に四捨五入する方法は?

  13. 13

    Pythonがこの合計を四捨五入するのはなぜですか?

  14. 14

    rのすべての数値を小数点なしで四捨五入

  15. 15

    Panda Python-列を100で除算します(次に2.dpで四捨五入します)

  16. 16

    Pythonが数値を四捨五入しないようにするにはどうすればよいですか?

  17. 17

    XSLT 2.0:計算結果を小数点以下第2位に四捨五入

  18. 18

    Javaを使用して価格を四捨五入する方法

  19. 19

    pydatatableの浮動値を四捨五入する方法は?

  20. 20

    SQLの四捨五入を実行する方法は?

  21. 21

    Pythonでは少数が四捨五入されています

  22. 22

    倍数から四捨五入した値を設定する方法

  23. 23

    CSSで画像を四捨五入する方法

  24. 24

    C#で小数の四捨五入値を取得する方法

  25. 25

    四捨五入せずに小数を切り捨てるにはどうすればよいですか?

  26. 26

    doubleをフォーマットして不要な「.0」を省略し、四捨五入しない

  27. 27

    入力名パラメーターを使用してjQueryで機能しないことを四捨五入する

  28. 28

    小さな負の数を四捨五入するために-0を取得する方法は?

  29. 29

    簡単に言えば ; 四捨五入されていない小数を取得するためのより良い方法はありますか

ホットタグ

アーカイブ