2010-10-02 65 views
4

我在C++中有一個雙精度型變量,並且希望將其作爲固定小數點數字打印到屏幕上。在C++中將雙精度型轉換爲固定型小數點

基本上我想知道如何編寫一個函數,它需要一個雙精度和多個小數位數,並打印出小數位數,必要時填零。

例如:

convert(1.235, 2) 

會打印出

1.24 

convert(1, 3) 

會打印出

1.000 

因此函數可以作爲

convert(number as double, number of decimal places) 

和簡單地打印出所需要的值到標準輸出(COUT)。

有誰知道如何做到這一點?

在此先感謝。

+0

http://www.cplusplus.com/reference/iostream/manipulators/setprecision/ – Anycorn 2010-10-02 01:50:35

回答

5

假設我記得正確我的格式字符串,

printf("%.*f", (int)precision, (double)number); 
+0

非常感謝代碼 – 2010-10-02 02:04:57

0

有沒有這樣的事,作爲一個「固定小數位」數。 convert函數需要是實際打印出來的函數。我會建議獲取數字的整個部分,然後打印出來。如果[小數位]> 0,則打印一個小數位,然後單獨打印每個小數,如:floor((n*log(10,d))%10); < - 只是一個想法,而不是實際的代碼。

-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

reference

+0

只是錯誤的[this answer](http://stackoverflow.com/a/13729528/1396334)。 – Avio 2014-08-14 10:19:03

相關問題