綜合知識

當前位置 /首頁/綜合知識 > /列表

C++double小數可以輸很多0嗎

C++double小數可以輸很多0嗎

C++double小數不可以輸很多0,因為在C++中,double類型最多隻能輸15-17位有效數字。數字是人們用來計數、衡量數量和表示數值的記號或符號,是一種數學概念和文化符號。數字最初是為了解決人們面對的實際問題而創造出來的,例如計算商品的數量、統計人口、測量距離等。數字最早的形式可以追溯到古代人類使用的手指、手掌等自然記號,隨着文明的進步,數字得到了進一步的發展。在現代文化中,數字被廣泛應用於各種領域,例如科學、工程、金融、計算機科學、藝術等。

小編還為您整理了以下內容,可能對您也有幫助:

C++ 怎麼輸出很多位小數的數字

其實a是double型時,這樣也能輸出足夠的位數。如果你覺得不滿意,可以看看我給的第二套程序。

cout.precision(6);這句中的數字是用來控制小數部分位數的。其他的你自己改成符合你的軟件的程序就行了。

#include<iostream>

using namespace std;

int main()

{

cout.setf(ios::fixed);

cout.setf(ios::showpoint);

cout.precision(6);

double a;

cin>>a;

cout<<a<<endl;

return 0;

}

程序2:

#include<iostream>

using namespace std;

int main()

{

int a,n;//a是要輸出的整數,n是小數部分的位數

cin>>a>>n;

cout<<a<<".";

for(int i=1; i<=n ;++i)

cout<<0;

cout<<endl;

return 0;

}追問不是,應該説是涉及到高精度算法的時候,輸出要怎麼做。比如求一個小數的N次方,要把結果完整的輸出。第一個當不確定小數位的時候會用零代替吧。

C語言中double要輸出幾位小數

C語言中double默認輸出 6 位小數(不足六位以 0 補齊,超過六位按四捨五入截斷),可以根據自己的需要去修改輸出的位數,例如輸出兩位小數:(%2lf)。

double可以表示十進制的15或16位有效數字。

擴展資料:

double負值取值範圍為 -1.7976E+308 到 -4.94065645841246544E-324,正值取值範圍為 4.94065645841246544E-324 到 1.797693E+308。

浮點類型:

1,單精度浮點型:float

2,雙精度浮點型:double

3,複數浮點型:float_comlex,double_comple, long long_comple

浮點型數據:

1,loat型

編譯系統為每一個float型變量分配4個字節,數值以規範化的二進制指數形式存放在存儲單元中。

2,double型

為了擴大能表示的數值範圍,用8個字節存儲一個double型數據,可以得到15位有效數字。

3,long double型

不同的編譯系統對long double型的處理方法不同,Visual C++6.0對long double型和double一樣處理,分配8個字節。

參考資料來源:百度百科-雙精度浮點型

C++,用double型變量進行運算,結果應該為0,但是輸出是—0.000000,我考慮應該是do

double顯示就是帶小數的,不會顯示0的,自己控制輸出格式呀。你的考慮那個叫浮點型的舍入誤差

c++編程,我寫的想要輸出小數點五十位,結果是輸出五十位了,但都是零,整數部分也不對,這是怎麼回事

double不太可能保證小數點後50位,因為這樣起碼要求160多位的二進制。

你説的情況實際上是要求按C的格式%*.50f輸出。

你的輸出中小數點後全為零是因為你的d的表達式有問題,應該為:

double d=a*b+456./1236; // 或者

double d=a*b+(double)456/1236;  // 或者

double d=a*b+456/

C++數據類型double可以定義變量為整數和帶有小數點的數嗎?

可以,double型 數據,可以寫整數和帶有小數點的數,也可以用科學記數法的e格式。

例如:

#include<iostream>

using namespace std;

#include <stdio.h>

int main ()

{

double a=10, b=12.345, c=9.876e-01;

cout << "a=" << a << "; b=" << b << "; c=" << c <<endl;

printf("a=%lf b=%lf c=%lf\n",a,b,c);

printf("a=%e b=%e c=%e\n",a,b,c);

return 0;

}

輸出:

a=10; b=12.345; c=0.9876

a=10.000000 b=12.345000 c=0.987600

a=1.000000e+001 b=1.234500e+001 c=9.876000e-001

c++double 的小數位數是多少

C++標準對double的小數位數沒有硬性規定,你可以用std::numeric_limits<double>獲取double類型的相關信息。目前,絕大多數系統都會用IEEE754標準規定的8字節雙精度浮點型實現double類型,但是的確存在一些例外,比如一些DSP上可能有完全不一樣的FPU,也會有完全不一樣的double實現。

float精度是2^23,能保證6位小數內精確。

double精度是2^52,能保證15位小數內精確。

但是,在通常使用中double默認打印位數沒有那麼多。可以使用強制輸出精度的命令語句比較double和float的精度(比較方式:先輸入#include <iomanip>,然後在輸出語句之前插入cout << setprecision(20);)。超過精度範圍的小數無效,但是仍然會在屏幕上顯示。

C++中double型數據怎麼取整數部分,就是小數後面全變成0。

1、首先,定義一個double型變量n,保存取整的數值。

2、用ceil函數對實數5.78取整,取整後的數值保存在變量n中。

3、輸出取整後的數值n。

4、運行程序,輸出的值為6,這是因為ceil是對實數向上取整。

5、接着,將ceil內的數更改為5.18。

6、運行程序,看到的結果還是6,説明ceil是向上取整。

C語言中double要輸出幾位小數?

C語言中double默認輸出 6 位小數。

如果要控制輸出小數位數,可以格式化輸出。

printf("%.3lf ", d);   // "%.3lf"  .3 則是輸出 3 位小數。

printf("%.4lf ", d);   // "%.4lf"  .4 則是輸出 4 位小數 。

C語言兼顧了高級語言的彙編語言的優點,相較於其它程式語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。

擴展資料:

特點

1、簡潔的語言

C語言包含有各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬件有關聯的較少,且C語言本身不提供與硬件相關的輸入輸出、文件管理等功能。

2、具有結構化的控制語句

C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if⋯else語句和switch語句等。可以用於實現函數的邏輯控制,方便麪向過程的程序設計。

3、豐富的數據類型

C語言包含的數據類型廣泛,不僅包含有傳統的字符型、整型、浮點型、數組類型等數據類型,還具有其他程式語言所不具備的數據類型,其中以指針類型數據使用最為靈活,可以通過編程對各種數據結構進行計算。 

4、豐富的運算符

c語言包含34個運算符,它將賦值、括號等均視作運算符來操作,使C程序的表達式類型和運算符類型均非常豐富。

5、可對物理地址進行直接操作

C語言允許對硬件內存地址進行直接讀寫,以此可以實現彙編語言的主要功能,並可直接操作硬件。c語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優勢,故在系統軟件編程領域有着廣泛的應用。

6、代碼具有較好的可移植性

c語言是面向過程的程式語言,用户只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬件,且針對不同的硬件環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植。

7、可生成的高質量目標代碼,高執行效率的程序

與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。

參考資料來源:百度百科-C語言

C++中double的精度問題

double的精度是C語言規定的,我們沒有辦法更改,但是我們可以只輸出4位小數的。

printf("%.4lf", double1); //X.Xlf,小數點前面的X是整數的位數,小數點後面的X是輸出的小數位數追問如何把他轉換為float,值不變呢?

c++中關於double的一點輸出問題 怎樣把double輸出的值為一般形式,且要最多保存小數點

使用double,你不可能輸出提問中那個a的小數點後70位的準確數值。

double叫“雙精度浮點數”,這裏説精度,不是因為數值精確,而是因為“精度有限”,double的數字精度,是15~16位,超出部分無法精確表達,甚至差異很大。

double a=45236896*145236544+1/695325145785263527586932

整數部分已經超出精度範圍了,小數部分幾乎是沒有意義的,別説小數點後70位了。

在16位精度以內,要顯示double的數值表達而不是指數表達很簡單,各種格式化函數都可以,主要在於使用指定的格式:

printf("%6.9lf",a);

TAG標籤:小數 Cdouble #