1樓:芭拉絕舞
這個結果很好啊,無限趨向0了,如果你要好看一點兒,可以int強制轉換一下
2樓:匿名使用者
應該是你最初沒有給這個double資料賦初值吧,如沒有賦初值的話,你的運算結果就很可能是上面的結果。因為在你定義這個double資料的時候(未賦初值時)此時的這個資料是個隨機數。
3樓:油哥來了
你把你寫的**發過來。
c++中double型別的0乘以負數輸出為-0,為什麼?詳情如圖
4樓:匿名使用者
好吧,這道題太讓我好奇了,一看沒人回答,我自己試了一下。
一樣的程式,我用vc6.0輸出0。。。我就不截圖了。
看來和編譯器有關。。。
5樓:匿名使用者
我不能肯定,但是我認為這取決於編譯器的實現,他估計是看見乘法就直接就進行符號位乘法,即正正為正、負負為正、正負為負,以此修改結果的符號位,輸出時檢視符號位,如果符號位為1,則必定輸出「-」,這樣就會出現你看到的情況了,當然只是我的猜想。。。換句話就是我認為這是程式設計的結果。
c++中double型數值計算結果為0為什麼輸出的不是0?
6樓:龍__鳳
#include
#include//加上標頭檔案
using namespace std;
void main()
7樓:匿名使用者
這是由於double型別的精度引起的。
在c/c++中,float和double型別,被稱為浮點型。
浮點型是c/c++中用來儲存實數的。而儲存的值,並不是實際值,而是近似值。
即,double型別和float型別儲存的值均不是準確值,而是乙個和準確值接近的值。
這樣,在計算中,就會有精度缺失的情況出現,運算越多,這個精度缺失出現的概率越大。
當經過大量計算後,就可能出現結果與真實結果偏差比較大的情況,也就是實際獲得的結果並不準確。
8樓:匿名使用者
#include
#include
using namespace std;
void main()
9樓:匿名使用者
cout<< (fabs(n-0.0)<1.0e-3)< c++中定義的變數為double型,為什麼輸出的數值總是不正確這是為什麼,**如下 10樓:山水阿銳 您好,您試試這個: sum = sum+(1.0/num); joychen_ 如果不成,再試試: num的型別改為double yy_神_eeee 11樓:yy_神 num的型別改為double c++中用cout函式怎樣實現格式輸出 12樓:兔丞飛 #include #include //不要忘記包含此標頭檔案 using namespace std; int main() 擴充套件資料 #include // 在c和一些古老的c++中是stdio.h,新標準為了使標準庫 // 的標頭檔案與使用者標頭檔案區別開,均推薦使用不用副檔名 // 的版本,對於原有c庫,不用副檔名時頭檔名前面要加c class myoutstream ;const myoutstream& myoutstream::operator <<(int value)const const myoutstream& myoutstream::operator <<(char* str)const myoutstream myout;//隨時隨地為我們服務的全域性物件myout int main() 13樓:匿名使用者 c++**為: #include #include //不要忘記包含此標頭檔案int a; cout 寬度為n,setiosflags(ios::left)設定輸出資料在本域寬範圍內向左對齊。 14樓:何度千尋 首先要加上標頭檔案#include #include #include //不要忘記包含此標頭檔案 using namespace std; int main() {int a; cout<<"input a:"; cin>>a; cout<<"dec:"<制形式輸出整數 cout<<"hex:"<進製形式輸出整數a cout<<"oct:"< 輸出結果如下: input a:34↙(輸入a的值) dec:34 (十進位制形式) hex:22 (十六進位制形式) oct:42 (八進位制形式) china (域寬為) *****china (域寬為,空白處以'*'填充) pi=3.14285714e+00 (指數形式輸出,8位小數) pi=3.1429e+00 (指數形式輸出,4位小數) pi=3.143 (小數形式輸出,精度仍為) 15樓: 控制符是在標頭檔案iomanip.h中定義的物件。 使用前必須把iomanip.h包含進來 1. i/o的書寫格式 i/0流是輸入或輸出的一系列位元組,當程式需要在螢幕上顯示輸出時,可以使用插入操 作符「<<」向cout輸出流中插入字元。例如: cout<<」this is a program.\n"; 當程式需要執行鍵盤輸入時,可以使用抽取操作符「>>」從cin輸**中抽取字元。例如: int myage; cin>>myage; 不管把什麼基本資料型別的名字或值傳給流,它都能懂。 例如,下面的函式輸出字串和整數: #include void main() {cout<<"my name is jone\n"; cout<<"the id is"; cout<<2; cout<>i >>f >>l; cin能夠知道抽取的變數之型別,它將對i,f,l分別給出乙個整型、浮點型和長整型數。 2.使用控制符 流的預設格式輸出有時不能滿足特殊要求,如: double average=9.400067; cout<義的物件。可以直接將控制符插入流中。常用控制符如表2-4所列。 表2-4 i/o流的常用控制符 控制符描 述dechex octsetfill(c) setprecision(n) setw(n) setiosflags(ios::fixed) setiosflags(ios::scientific) setiosflags(ios:: left) setiosflags(ios::right) setiosflags(ios::skipws) setiosflags(ios:: uppercase) setiosflags(ios::lowercase) 置基數為10 置基數為16 置基數為8 沒填充字元為c 沒顯示小數精度為n位 設域寬為n個字元 固定的浮點顯示 指數表示 左對齊右對齊 忽略前導空白 16進製製數大寫輸出 16進製製數小寫輸出 使用控制符時,要在程式的頭上加標頭檔案iomanip.h。 3.控制浮點數值顯示 使用setprecision(n)可控制輸出流顯示浮點數的數字個數。c++預設的流輸出數值有效位是6。 如果setprecision(n)與setiosflags(ios::fixed)合用,可以控制小數點右邊的數字個數。setiosflags(ios:: fixed)是用定點方式表示實數。 如果與setiosnags(ios::scientific)合用, 可以控制指數表示法的小數字數。setiosflags(ios::scientific)是用指數方式表示實數。 例如,下面的**分別用浮點、定點和指數方式表示乙個實數: //********************* //** ch2_1.cpp ** //********************* #include #include //要用到格式控制符 16樓:匿名使用者 左對齊:cout <意要加上標頭檔案#include io 流控制標頭檔案, 主要是一些操縱用法如setw(int n),setprecision(int n) 17樓:匿名使用者 常用的是setw(); 18樓:400和260和 cout不是函式,是乙個物件! c++用double型計算後的結果如何除去小數字多餘的0 19樓: 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 20樓:注意樓下 cstring cc; dounle m; cc.format("%f",m); cc.trimright("0"); cc.trimright("."); 21樓:匿名使用者 mfc的話就用cstring 格式化一下 double dw=1.123; cstring str; str.format("%.02f",dw);//意思是小數點留兩位,也就是str=1.12 純手打,望採納 22樓:叫撒名字啊啊啊 將float-> cstring,去掉小數點後多餘的0,如43.343000-> 43.343 20.000000-> 20 如果用strtemp.format( "%f ",fdata)這裡轉換有問題,會把123.12->123.1200325.123-> 25.122999 或者轉換成char陣列然後向前替換0. 23樓:匿名使用者 你可以在輸出格式中控制保留有效數的個數,如%.2f(保留小數點後兩位) 24樓:匿名使用者 同求,我現在也在學mfc,c++學得不太紮實。 和 等於平時計算的除以 不取餘數 和乘以 然後sqrt 等於開方 18 4 sqrt 4.0 8 18除以4乘以2.0除以8 1.0 double 18 4 4 int與 int運算仍為 intsqrt 4.0 2.0 double 返回值的型別是函式sqrt定義的 18 4 sqrt 4.0 為i... 首先說明原理 1 逗號運算子也稱順序求值運算子,即從左至右順序執行,最後乙個值會覆蓋前面的值,所以使用逗號將幾個表示式連線起來的帶括號的表示式,最終整個逗號表示式的值為最後乙個表示式的值。2 自增和自減運算子有前置和後置之分,在混合運算中,前置是先自增或者自減,再進行取值 而後置恰好相反,即先取值進... for 表達 式1 表示式2 表示式3 表示式1表示執行一次表示式1,表示式2 就是表示式1後面的 為控制表示式,表示式2為空表示這個式子恒為真,既然是真,那如果迴圈體裡沒有退出的判斷條件的話這個迴圈將會永遠執行 然後執行迴圈體 這裡你沒寫,就是在for迴圈下面的語句或者復合語句 然後執行表示式3 ...c語言中怎麼算表示式的資料型別例如 表示式18 4 sqrt 4 0 8值的資料型別為什麼?謝謝
c語言逗號表示式的問題,C語言逗號表示式的問題 x 6,y 7,z 8 r func x ,y ,x y ,z
C語言中for表示式1表示式3可理解為