1樓:_奧丁信使
double res=(int)n;
printf("%.nlf",res);
強制轉換型別,會有警告,但一般不用理會
望採納。
2樓:
#include
void main()
輸出結果為:1123.12
c++語言程式設計操作。 要求輸出小數點後兩位,我用double定義,最後輸出時
3樓:
給你舉個例子就妥了:
至於你的為什麼錯,因**不全,我沒有看明白。
4樓:匿名使用者
用計算後轉成字串。
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 )
5樓:匿名使用者
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下的圖表,應該能讓你更清楚了
★ 進來看下,複試分數線的疑惑,謝謝回答了...
6樓:匿名使用者
這個只是大類的最低要求線。主要是看單科是否夠線的。
基本上不會有什麼專業方向是以這個來划複試線。
如果正好考到這個分八成要被刷(這個要看報考的專業方向了),就算初試沒被刷複試也凶多吉少。
所以很多記者會以這個線、還有國家線來炒作。
c語言或者liunx系統中有沒有函式,控制double型別的數值計算後結果保留2位小數。
7樓:韌勁
c語言中float,double型別,在記憶體中的結構(儲存方式)
從儲存結構和演算法上來講,double和float是一樣的,不一樣的
地方僅僅是float是32位的,double是64位的,所以double能儲存更高的精度。
任何資料在記憶體中都是以二進位制(0或1)順序儲存的,每乙個1或0被稱為1位,而在x86cpu上乙個位元組是8位。比如乙個16位(2 位元組)的short int型變數的值是1000,那麼它的二進位制表達就是:00000011 11101000。
由於intel cpu的架構原因,它是按位元組倒 序儲存的,那麼就因該是這樣:11101000 00000011,這就是定點數1000在記憶體中的結構。
目前c/c++編譯器標準都遵照ieee制定的浮點數表示法來進行float,double運算。
這種結構是一種科學計數法,用符號、指數和 尾數來表示,底數定為2——即把乙個浮點數表示為尾數乘以2的指數次方再添上符號。
下面是具體的規格:
型別 符號位 階碼 尾數 長度
float 1 8 23 32
double 1 11 52 64
臨時數 1 15 64 80
由於通常c編譯器預設浮點數是double型的,下面以double為例: 共計64位,折合8位元組。
由最高到最低位分別是第63、62、61、……、0位: 最高位63位是符號位,1表示該數為負,0正; 62-52位,一共11位是指數字; 51-0位,一共52位是尾數字。
按照ieee浮點數表示法,下面將把double型浮點數38414.4轉換為十六進位制**。
把整數部和小數部分開處理:整數部直接化十六進位制:960e。
小數的處理: 0.4=0.
5*0+0.25*1+0.125*1+0.
0625*0+…… 實際上這永遠算不完!這就是著名的浮點數精度問題。所以直到加上前面的整數部分算夠53位就行了(隱藏位技術:
最高位的1 不寫入記憶體)。
如果你夠耐心,手工算到53位那麼因該是:38414.4(10)=1001011000001110.0110101010101010101010101010101010101(2)
科學記數法為:1.001……乘以2的15次方。
指數為15! 於是來看階碼,一共11位,可以表示範圍是-1024 ~ 1023。因為指數可以為負,為了便於計算,規定都先加上1023,在這裡, 15+1023=1038。
二進位制表示為:100 00001110 符號位:正—— 0 !
合在一起(尾數二進位制最高位的1不要): 01000000 11100010 11000001 11001101 01010101 01010101 01010101 01010101 按位元組倒序儲存的十六進位製數就是: 55 55 55 55 cd c1 e2 40。
8樓:匿名使用者
在c++中輸出乙個浮點數n,並保留指定的小數字數,應該怎麼處理呢?首先先把iomanip標頭檔案包含進來,然後對浮點數n按下列操作輸出(假設保留2位小數):
cout< c中還真的不記得,你可以看看這個函式對照下,自己寫乙個。 9樓:匿名使用者 沒有四捨五入的話,要手動在後面加上 a = floor(a*100 + 0.5)/100.0; 10樓:匿名使用者 你是要把這個數繼續作為變數使用麼? 可以這樣子: char sztmp[30] = "\0"; sprintf(sztmp, "%.2lf", a); a = atof(sztmp); 這樣,兩位小數後面的都沒去掉了; 但是列印顯示的話 還是要用%.2lf,不然後面還是會有很多0,這是數值的精度位數; 11樓:昔拉 printf("a=%.2f",a); .2f前面是有個小數點的, 還有什麼問題嗎 12樓:匿名使用者 printf("a=%.2f",a); double型別,小數點後的位數 13樓:匿名使用者 double型別是雙精度浮點數,佔用8位元組(byte)即64位(bit),其精度是由32個bit的二進位制尾數來確定的,因此準確精度是二進位制精度而不是十進位制精度,通常可以保證十進位制小數點後15位有效精度和第16位的部分精度。 通過格式化方法輸出double型別,可以控制小數點後的顯示位數:astr.format("%. 2f",a);在百分號後面加上.x 就是指定小數點後的顯示位數。注意這種方法不是四捨五入,而是截斷顯示,1. 239會顯示為1.23; 如果需要四捨五入,在c/c++中沒有專門的函式,你可以這樣實現:astr.format("%.2f",a+0.005);再捨去位加上5,再截斷的時候就等於是四捨五入了。 拓展資料: visual basic 支援幾種 numeric 資料型別— integer(整型)、long(長整型)、single(單精度浮點型)、double(雙精度浮點型)和 currency(貨幣型)。與 variant 型別相比,numeric 型別佔用的儲存空間通常要少。 如果知道變數總是存放整數(如 12 )而不是帶小數點的數字(如 3.57),就應當將它宣告為 integer 型別或 long 型別。整數的運算速度較快,而且比其它資料型別佔據的記憶體要少。 在 for...next 迴圈內作為計數器變數使用時,整數型別尤為有用。 如果變數包含小數,則可將它們宣告為 single、double 或 currency 變數。currency 資料型別支援小數點右面 4 位和小數點左面 15 位;它是乙個精確的定點資料型別,適用於貨幣計算。浮點(single 和 double)數比 currency 的有效範圍大得多,但有可能產生小的進製誤差。 浮點數值可表示為 mmmeeee 或 mmmdeee ,其中 mmm 是假數,而 eee 是指數(以 10 為底的冪)。single 資料型別的最大正數值為 3.402823e+38,或 3. 4 乘以 10 的 38 次方;double 資料型別的最大正數值是 1.79769313486232d+308 或 1.8 乘以 10 的 308 次方。 用 d 將數值文字中的假數部分和指數部分隔開,就會導致將該值作為 double 資料型別來處理。同樣,用這種方式使用 e,也會導致將該值作為 single 資料型別來處理。 14樓:2c1忘乎所以 cstring astr; double a=1234.567890; astr.format("%2f",a); setdlgitemtext(idc_a,astr); 將輸出改為%2lf,即保留小數點後兩位 雙精度浮點型,此資料型別與單精度資料型別(float)相似,但精確度比float高,編譯時所佔的記憶體空間依不同的編譯器而有所不同,是double float資料型別,c/c++中表示實型變數的一種變數型別。 此資料型別與單精度資料型別(float)相似,但精確度比float高,編譯時所佔的記憶體空間依不同的編譯器而有所不同,通常情況,單精度浮點數佔4位元組(32位)記憶體空間,其數值範圍為-3.4e38~3.4e+38,;雙精度型佔8 個位元組(64位)記憶體空間,其數值範圍為-1. 7e308~+1.7e308。 在c語言中可以通過精度限定符來控制浮點數輸出的位數,精度限定符有乙個點號後跟乙個整數組成。其準確含義依賴於它所修飾的資料型別。示例如下 include int main include int main int argc,char argv include int main void sprintf... 能進bai行,不會錯,系統實際會把du參加運zhi算的所有變數轉換為double後進dao行計算專,只要表示式屬裡面有乙個float或者double的量,例如 int i 1 float x 5,y y x i 執行的時候系統會把x和i都轉換為double進行計算,最後的結果再儲存為y的double... lg並不是任何字元的縮寫,而是乙個特定的格式字元。說明如下 lg的效果為,根據double型別資料的值,自動選擇以實數形式輸出,或者是以科學計數法輸出。對double輸出可以選擇以實數方式輸出,格式為 lf。當用 lf時,輸出為 形式。也可以選擇以科學計數法形式輸出,格式為 le,當使用 le時,輸...c語言輸出浮點型資料輸出,C語言輸出浮點型資料輸出
c語言中int型與double型能進行換算加減乘除嗎
看了個例子c語言中輸出lg是double型的那這裡