怎么解決double精度丟失 什么是double型數(shù)據(jù)?
什么是double型數(shù)據(jù)?double是雙精度浮點數(shù),變量的存儲空間要比float占用的多,浮點數(shù)表示的精度要更準(zhǔn)確。精度更高的小數(shù),約小數(shù)點后10位。計算機c語言中double定義什么樣的數(shù)據(jù)?do
什么是double型數(shù)據(jù)?
double是雙精度浮點數(shù),變量的存儲空間要比float占用的多,浮點數(shù)表示的精度要更準(zhǔn)確。精度更高的小數(shù),約小數(shù)點后10位。
計算機c語言中double定義什么樣的數(shù)據(jù)?
double是指雙精度浮點型數(shù)據(jù)。double型的變量是帶符號的 IEEE 64 位(8 個字節(jié))雙精度浮點數(shù),比float型(4字節(jié))精度更高。其負(fù)值取值范圍為 -1.79769313486231570E 308到 -4.94065645841246544 E-324,正值取值范圍為 4.94065645841246544E-324 到 1.79769313486231570E 308。
float后加f為什么就能轉(zhuǎn)換成double類型?
可以這樣來定義一個double型的double d = 0.1然而,這樣不可以通過float f = 0.1來定義一個float型的,這是因為默認(rèn)的小數(shù)是double型的要定義一個float型的,有兩種方式float f = 0.1f或者 float f = (float)0.1相互之間的轉(zhuǎn)化:舉個例子:假設(shè)有void f1(double d) void f(float f)這兩個函數(shù)的定義現(xiàn)在用上面定義的變量來調(diào)用一下就知道了f(d)是有編譯錯誤的,這說明java中double不能自動轉(zhuǎn)化為float,改為f((float) d)就行了但是f1(f),確是可以是,這是因為java可以自動的轉(zhuǎn)化float至double來進行運算。至于為什么?java在運算時會自動的提升變量的精度來進行運算,double比float精度更高,所以可以自動的從float轉(zhuǎn)化至double再進行運算。