1. vb 怎麼將數據類型寫成雙精度型
1、因為此數據類型的有效數字是16位,它是單精度實數(有效數字8位)精度的兩倍,故而得名雙精度實型數。
2、詳細如下:
a)、Single 數據類型
Single(單精度浮點型)變數存儲為 IEEE 32 位(4 個位元組)浮點數值的形式,它的范圍在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38。
b)、Double 數據類型
Double(雙精度浮點型)變數存儲為 IEEE 64 位(8 個位元組)浮點數值的形式,它的范圍在負數的時候是從 -1.79769313486232E308 到 -4.94065645841247E-324,而正數的時候是從 4.94065645841247E-324 到 1.79769313486232E308。
2. Java語言中的浮點型數據的float和double的單精度和雙精度到底是啥意思
主要有下面幾個區別,手冊上的,希望能幫到你
1、變數類型不同
float屬於單精度型浮點數據。
double屬於雙精度型浮點數據。
2、指數范圍不同
float的指數范圍為-127~128。
double而double的指數范圍為-1023~1024
3、表達式指數位不同
float的表達式為1bit(符號位)+8bits(指數位)+23bits(尾數位)
double的表達式為1bit(符號位)+ 11bits(指數位)+ 52bits(尾數位)
4、佔用內存空間不同
float佔4個位元組(32位)內存空間,其數值范圍為3.4E-38~3.4E+38。
double佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308。
5、有效位數不同
float只能提供七位有效數字。
double可提供16位有效數字。
3. Access資料庫如何將默認欄位大小改為雙精度,就是我想在每次新增一個欄位的時候,數據類型默認為數
將ACCESS選項中的「表設計」的"默認欄位類型"和"默認欄位大小"分別設置成"數字"和"雙精度型"即可。
2003版本設置方法
菜單——工具——選項 打開選項對話框,然後選擇「表/查詢」選項卡,跟著在相應的下拉組合框里選擇"數字"和"雙精度型",最後保存設置,見圖
4. C語言如何輸出雙精度浮點型數據
1.雙精度浮點型數據用%lf輸出。因為double是8個位元組的,float是4個位元組的,%f 的格式就是4個位元組的,而 %lf 就是8個位元組的。 例如:printf("%lf ",x);
2.short 佔用內存空間2個位元組,短整型數據用%d輸出 例如:printf("%d ",a);
例:
#include <stdio.h>
int main()
{double x;
short int a;
printf("%lf",x); // 輸入double型
printf("%d",a); //輸入短整型
return 0;
}
(4)浮點導入資料庫變成雙精度擴展閱讀:
C語言特有特點
1.C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。
2.C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3.不同的變數類型可以用結構體(struct)組合在一起。
4.只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。
5.部份的變數類型可以轉換,例如整型和字元型變數。
6.通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7.預編譯處理(preprocessor)讓C語言的編譯更具有彈性。
5. 如何單精度浮點數轉化為雙精度浮點數
強制類型轉換,如
float pi=3.14;
double PI=pi;
6. 為什麼設一個浮點變數 要求輸入雙精度浮點類型會出錯
scanf ("%lf",&x);
%lf 輸入的數會做為雙精度來存,佔用8個位元組,存入以&x為起始的地址里,
而系統只為x 分配了4個位元組的位置。後面超出來4個位元組就會佔用到別的地址,會地址出錯。有可能寫到不該寫的地方。
7. mysql往資料庫插入float類型的數據 為什麼數字不對
float類型可以存浮點數,但是float有缺點,當不指定小數位數的時候,就會出現小數位數與想要的不一致,導致「報錯」。在創建浮點類型的時候必須指定小數位數,float(m,d),m表示的是最大長度,d表示的顯示的小數位數。
雖然兩個類型的值有相似也有不相似,但定義的是float、插入的值只要不出錯肯定是float類型,10表示該值一共顯示10位整數,其中3位位於小數點後面。
(7)浮點導入資料庫變成雙精度擴展閱讀:
浮點包可以將二進制浮點數存儲為非標准化數,而不使用剛剛介紹的存儲方法。「非標准化數」是帶有保留指數值的非零浮點數,其中尾數的最高有效位為 0。
通過使用非標准化格式,浮點數的范圍可以擴展,但會失去精度。您無法控制浮點數以標准化形式還是非標准化形式表示;浮點包決定了表示形式。浮點包從不使用非標准化形式,除非指數變為小於可以標准化形式表示的最小值。
8. c++如何把浮點型轉化成雙精度型
直接賦值即可。
9. Excel 求教:單精度浮點型與雙精度浮點型的問題
求教,今天學習突然發現個問題,同樣的代碼,一個申明變數為單精度浮點型,一個申明變數為雙精度浮點型,但是結果卻不一樣
a=3.11999988555908
b=3.12
代碼:
Sub test2()
Const a As Single = 3.12
Const b As Double = 3.12
Range("A1") = a
Range("B1") = b
End Sub
結果在excel中如圖
這樣的話定義單精度浮點型不是沒用,以後小數不是都要定義為雙精度浮點型了嗎?
浮點數的誤差是一定存在,並且無法消除。
永遠不要直接比較兩個浮點數。比較的時候要先round。
把電腦中的浮點運算誤差找出來 - 任何人的電腦都會有這個誤差的
很多人在日常使用Excel,可能都沒有注意到浮點小數帶來的計算誤差問題
因為日常使用的運算結果,肯定都是四捨五入之後的結果,可以排除浮點誤差的影響
但是,浮點小數的誤差,也會出現在運算的過程,有可能導致最終結果出錯。
比方說 countif(A1:A10000,"=B1")這樣的簡單統計,也有可能出錯。
附件生成5萬個隨機小數(四捨五入到2位小數位),加上然後馬上減去同一個整數
對比計算前後的數值是否相等(數學上當然是絕對相等的,但是電腦的運算結果就不一定了。。。。。。)
附件會自動找出一批在你的電腦上會出現浮點小數誤差導致錯誤的運算。
出現浮點小數運算誤差的原因很簡單,小數有無窮多個
甚至一個小數也有無窮多位,如十進制的1/3,或者二進制的0.1
所以計算機存儲小數的時候,必定只能存儲所有小數的一部分,而無窮小數則必須截斷
因此,一個小數有時候就只能取一個接近值而不是精確值
而對應的浮點數運算,也只能得到接近值,而不是精確值
不同的CPU,比方說Intel的跟AMD的,或者奔騰跟賽揚,在硬體上對於截斷的位置是不一樣的
所以,同一個運算在不同的機器就可能有不同的結果
這也是為什麼論壇經常有人說xx運算不正確,然後回帖的人說我的機器沒事,其實就是CPU不同而已
另一方面,不同的軟體,內部計算的時候,也許用了不同的CPU硬體實現的數據類型,或者精度設置也不一樣,
所以,同一個運算在不同的軟體也可能有不同的結果
編程,寫公式要注意,假設 x,y 都是浮點數,er。。。。。。excel的每個小數單元格都是浮點數
那麼永遠不要寫 if x=y 這樣的句子,因為很可能數學上相等的x和y,在計算機內部是不等的
應該寫成 if |x-y| / max(|x|,|y|) <= 0.0000000000001 之類
或者簡單一點,用if round(x) = round(y) 來判斷,這樣最末一位的尾數浮點存儲誤差就不會影響整個數值了。
幸運的是,整數和定點小數不會受影響,編程時應該優先考慮使用整數和定點小數類型
另一方面,即使浮點小數可以完全表示我們要計算的數值,但是計算結果卻也有可能產生誤差
浮點,定點的意思是指小數點的位置
定點小數:小數點位置固定。
以十進制為例,假設一個數值類型可以有6個十進制位置,那麼定點類型無須記錄小數點位置,可以有以下類型:
整數類型,小數點位置就一定是個位後面,能夠表達的最精確數字就是1,能夠表達的范圍是 000000 - 999999
兩位小數類型,小數點位置就一定是百分位,能夠表達的最精確數字就是0.01,,能夠表達的范圍是 0000.00 - 9999.99
。。。。。。等等
浮點小數:小數點位置可以變動,並且需要額外的記錄去描述這個變動的小數點位置。
假設這里把其中一個位置用於記錄小數點位置(可變范圍 0-9),並且規定:
小數點位置取5,表示精度是1,小數點在個位後面,這個數值類型有0個小數位,可以表示 00000 到 99999 的數 (注意:這里只有5位有效數字)
小數點位置取6,表示精度是 0.1,小數點在十分位後面,這個數值類型有1個小數位,可以表示 0000.0 到 9999.9 的數
小數點位置取9,表示精度是 0.0001,小數點在萬分位後面,這個數值類型有4個小數位,可以表示 0.0000 到 9.9999 的數
......
小數點位置取4,表示精度是 10,表示小數點在十位,這個數值類型可以表示 00000 x 10 到 999990 的數,精度是 10
......
小數點位置取0,表示精度是 100000,表示小數點在十萬位,這個數值類型可以表示 00000 x 100000 到 9999900000 的數,精度是 100000
可見浮點小數通過可變的小數位置,使一個數值類型可以用一部分表示有效數字,另一部分表述每一單位有效數字的倍率
從而靈活地表示很大范圍的數值,代價是:由於用了一部分記錄內容去記錄小數點位置,所以有效數字的長度比定點小數要低。
而且,一些定點數運算不會出現的問題,在浮點數運算會出現
如兩個數相加
如果第一個浮點數是 100.01,第二個浮點數是 9999900000
按上述規則,這兩個都是合法的浮點數,可是它們的和 99999000100.01 卻無法用同一個浮點數類型表示出來。
一般計算機碰到這種情況,就會自動按比較大的數值來四捨五入,於是
100.01 + 9999900000 = 9999900000 (出現了100.01的誤差)
這也是浮點數誤差產生的一個原因:小的數值被大的數值「吸收」了。
要在Excel證明這一點就太簡單了,因為excel的double類型浮點小數只有15個有效數字(即最多記錄15個十進制數字)
所以Excel的單元格運算 12345012345678900000 + 12345.0123456789 = 12345012345678900000
-----------------------------------------------------------
VBA單精度浮點型Single與雙精度浮點型Double的區別
浮點型說白了就是科學記數法
單精度浮點型(single)
在C++中,單精度浮點型(float )專指佔用32位存儲空間的單精度(single-precision )值。單精度在一些處理器上比雙精度更快而且只佔用雙精度一半的空間,但是當值很大或很小的時候,它將變得不精確。當你需要小數部分並且對精度的要求不高時,單精度浮點型的變數是有用的。例如,當表示美元和分時,單精度浮點型是有用的。
在foxpro中,單精度浮點型是為了提供兼容性,浮點數據類型在功能上等價於數值型。
在VB中,Single 數據類型 Single(單精度浮點型)變數存儲為 IEEE 32 位(4 個位元組)浮點數值的形式,它的范圍在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38。6位有效位數
Single 的類型聲明字元為感嘆號 (!)。
雙精度(double)型
C語言中,雙精度(double)型佔8 個位元組(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。
Single 最多可以顯示小數點後面7位 Double 最多可以顯示小數點後面14位
Single 數據類型
Single(單精度浮點型)變數存儲為 IEEE 32 位(4 個位元組)浮點數值的形式,它的范圍在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38。Single 的類型聲明字元為感嘆號(!)。
Double 數據類型
Double(雙精度浮點型)變數存儲為 IEEE 64 位(8 個位元組)浮點數值的形式,它的范圍在負數的時候是從 -1.79769313486232E308 到 -4.94065645841247E-324,而正數的時候是從 4.94065645841247E-324 到 1.79769313486232E308。Double 的類型聲明字元是數字元號(#)。