1樓:
給你舉個例子就妥了:
至於你的為什麼錯,因**不全,我沒有看明白。
2樓:匿名使用者
用計算後轉成字串。
double f1;
f1=1234.5678;
string s1;
//sprintf(s1,"%8.2f",f1);
sprintf(s1, "%*.*f", 10, 2, f1);
cout<者:
#include
#include
using namespace std;
int main( void )
3樓:匿名使用者
c++對輸出的格式化控制:
首先要包含標頭檔案,#include ,當然還有名稱空間std。
按照msdn的說明這個標頭檔案有以下幾個方法:
setprecision預設保留6位數,包括整數部分和小數部分,不包括小數點。若指定長度,則從高位到地位計算到指定長度截至。
setw設定顯示時候的長度,如果資料長度大於設定的長度,則按資料長度實際顯示。若小於設定的長度,則在前導預設補充空格,可以使用setfill設定前導填充字元。
這是msdn官方的例子,你體會下:
#include
#include
using namespace std;
const double d1 = 1.23456789;
const double d2 = 12.3456789;
const double d3 = 123.456789;
const double d4 = 1234.56789;
const double d5 = 12345.6789;
const long l1 = 16;
const long l2 = 256;
const long l3 = 1024;
const long l4 = 4096;
const long l5 = 65536;
int base = 10;
void displaydefault( )
void displaywidth( int n )
void displaylongs( )
int main( int argc, char* argv )
對應的執行結果如下:
如果要指定小數位後面幾位顯示,可以有以下幾種方式:
1 - c語言
printf("%.2f\n", 3.1415926);
2 - c++語言
cout << fixed << setprecision(2) << 3.1415926 << endl;
cout << setprecision (2);
cout.setf(ios::fixed,ios::floatfield);
cout << 3.1415926 << endl;
順便在此奉上一張從網上down下的圖表,應該能讓你更清楚了
c++用double型計算後的結果如何除去小數位多餘的0
4樓:
c++預設是不輸出浮點數小數
點後多餘的0的。如果想要輸出小數點後多餘的0,則要在程式中用cout.setf(ios::
showpoint);語句設定,不再想輸出時要用cout.unsetf(ios::showpoint);語句恢復。
以下**供理解這個變化過程:
//#include "stdafx.h"//if the vc++6.0, with this line.
#include
using namespace std;
int main(void)
輸出是:
預設不輸出小數點後的0
5.75.7000005.7
5樓:注意樓下
cstring cc;
dounle m;
cc.format("%f",m);
cc.trimright("0");
cc.trimright(".");
6樓:匿名使用者
mfc的話就用cstring 格式化一下
double dw=1.123;
cstring str;
str.format("%.02f",dw);//意思是小數點留兩位,也就是str=1.12
純手打,望採納
7樓:叫撒名字啊啊啊
將float-> cstring,去掉小數點後多餘的0,如43.343000-> 43.343 20.000000-> 20
如果用strtemp.format( "%f ",fdata)這裡轉換有問題,會把123.12->123.1200325.123-> 25.122999
或者轉換成char陣列然後向前替換0.
8樓:匿名使用者
你可以在輸出格式中控制保留有效數的個數,如%.2f(保留小數點後兩位)
9樓:匿名使用者
同求,我現在也在學mfc,c++學得不太紮實。
c++源**,輸入一個double型別的數,使該數保留小數點後兩位,對第三位小數進行四捨五入運算,輸出
10樓:鏡面世界
double b = (int)((a * 1000 + 5) / 10) / 100.0; //a是原來的,b是要求的
11樓:燕歸來
#include
using namespace std;
int main()
{double data;
cin>>data;
data=(int)(data*100+0.5)/100.0;
cout<
(c++)double型的資料,如何保留小數點後四位?
12樓:匿名使用者
在計算時,可以使用floor函式+0.5來實現四捨五入。
例如:double a = 13.45656789;
double b;
b = floor(a * 10000.000f + 0.5) / 10000.000f; /*保留小數點後四位*/
在輸出時,直接使用printf格式輸出實現保留小數點後四位。
例如:double a = 13.45656789;
printf("%.4f",a); /*保留小數點後四位*/
13樓:匿名使用者
四捨五入 保留四位小數
#include
double a = 13.45656789;
double b;
b = floor(a * 10000.000f + 0.5) / 10000.000f; /*保留小數點後四位*/
14樓:大海中的漂泊船
floor(value)+floor((value - floor(value)) * 10000+ 0.5) / 10000; 防止double資料太大,乘以10000後溢位;
15樓:御風__弄影
#include
cout< 這就行了 16樓: a=((int)a*10000)/10000 17樓:匿名使用者 cout< cout<
18樓:成紅微生英飆 #include #include void main() 19樓:我真是瞎填的 c++格式怎麼變成c格式了 舉例說明如下 1 float f1 3.1415926 2 float f2 1234.1415926 3 float f3 124.1 4 printf 3.4f f1 輸出結果為 3.1416 表示空格 5 printf 3.4f f2 輸出結果為 1234.1416 6 printf 3.4f... printf e 10lf e printf e 20f e 輸出小數點後面的20位!c語言中輸出時怎樣控制小數點後的位數,請舉例說明保留1 2 3 4位小數等等,謝謝 舉例說明如下 1 float f1 3.1415926 2 float f2 1234.1415926 3 float f3 12... 這是c語言中的 右移運算子 一般情況下,他是按位操作。特點 1.雙目運算子,就像 一樣,格式為 數1 數2 2.數1是被運算元,如被減數 被除數等 數2是右移位數。3.優先順序低,結合性 從左向右運算 如 8 1 表示將被移數向右移動1位 如何操作?1.化十進位制數為 注意了 對應的二進位制數,對應...C語言中輸出時怎樣控制小數點後的位數,請舉例說明保留4位小數等等,謝謝
求C語言指點,如何讓我的輸出為小數點後10多位我的輸出只有小數點後六位
c語言如何判斷小數的小數點後有幾位