7

C++ に double 変数があり、それを固定小数点数として画面に出力したいと考えています。

基本的に、double と小数点以下の桁数を取り、その小数点以下の桁数まで数値を出力し、必要に応じてゼロをパディングする関数を作成する方法を知りたいです。

例えば:

convert(1.235, 2)

印刷します

1.24

 convert(1, 3)

印刷します

1.000

したがって、関数は次のように機能します

convert(number as double, number of decimal places)

必要な値を標準出力 (cout) に出力するだけです。

誰もこれを行う方法を知っていますか?

前もって感謝します。

4

4 に答える 4

6

フォーマット文字列を正しく覚えていると仮定すると、

printf("%.*f", (int)precision, (double)number);
于 2010-10-02T01:52:25.760 に答える
4

アイデアを与えるsetprecision マニピュレータを見てください

于 2010-10-02T01:51:53.873 に答える
0

「固定小数点」数というものはありません。convert 関数は、実際に出力する関数である必要があります。数値の全体を取得してから印刷することをお勧めします。[小数点以下の桁数]>0 の場合、小数点以下の桁数を出力し、次のように各小数点以下を個別に出力します: floor((n*log(10,d))%10);<-- 実際のコードではなく単なるアイデアです。

于 2010-10-02T01:51:54.590 に答える
-1
#include <iomanip>
#include <iostream.h>

// print a float, x places of precision 
void convert (double number, int x)
{
    cout << setprecision(x) << number << endl;
}

int main()
{
    double a = 1.234;
    convert (a,2);
} 

出力: 1.23

参照

于 2013-11-22T15:31:52.797 に答える