簡體   English   中英

使用printf打印double的可變位數

[英]Print a variable number of digits of a double using printf

任何人都知道是否可以使用printf打印VARIABLE位數?

以下代碼行正好打印2:

printf("%.2lf", x);

但是我要說我有一個變量:

int precision = 2;

有沒有辦法在printf中使用它來指定位數?

否則我將不得不寫一個'switch'或'if'結構。

謝謝

有可能的:

#include <stdio.h>

int main() {
    int precision = 3;
    float b = 6.412355;
    printf("%.*lf\n",precision,b);
    return 0;
}

是的,你可以輕松地做到這一點 -

int precision = 2;
printf("%.*lf", precision, x);

是: printf("%*d", width, num) :見: http//linux.die.net/man/3/printf

如果您使用的是C ++,可以在與ios_base::precision()組合中使用std::couthttp//www.cplusplus.com/reference/ios/ios_base/precision/

如果使用C ++,則可以使用setprecision:

#include <iostream>
#include <iomanip>      // std::setprecision

int main () {
    int precision = 2;
    double f =3.14159;

    std::cout << std::setprecision(precision) << f << '\n';
    ++precision;
    std::cout << std::setprecision(precision) << f << '\n';

    return 0;
}

輸出

3.1
3.14

你可以在這里閱讀更多相關信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM