這是Herr Deng桑的教學blog,主要處理作業與班導事務,另外還有數位小品。
int sum=596;average=(double)sum/10;average=sum/10;
有double時會有小數點沒有double則只有整數
double是倍精浮點數有double可以表示的小數點範圍很大沒有double的話能表示小數點的範圍一定比較小相較之下float可以表示小數點範圍就比double來的小順帶一提float是4 bytesdouble是8 bytesbyte 的值域 -128 ~ 127
有double(8 bytes)可以表示的小數點範圍很大沒有double能表示小數點的範圍一定比較小相較之下float(4 bytes)可以表示小數點範圍就比double來的小byte 的值域 -128 ~ 127
有打double時有小數點沒有打double時則只有到整數沒有小數點
有double有小數沒double沒小數double是8bytes可印出8個數字含小數點超過8bytes的小數點會無條件四捨五入
較大的浮點數型態轉至較小的浮點數型態會有潛在問題 也就是會漏失精確度原值可能超出目的型態所能容納的範圍 如此結果不可預知float有效位數有4個位元組而double有6個位元組
要注意的是較大的浮點數型態轉至較小的浮點數型態會有潛在問題 也就是會漏失精確原值可能超出目的型態所能容納的範圍 如此結果不可預知因為float的有效位數至少有4個位元組而double至少有6個位元組
答案用程式跑就知道!我問的是差別!
有加 double 的類型變量跟沒加 double 的類型變量,差別是所需記憶體空間大小及值域所能接受的範圍不一樣。
double倍精確度資料型別長度為64位元(8Bytes)在程式中有加double時可執行有效位數15位數如果沒加double時則只會到整數位
double 倍精確數資料型態,所佔空間8bytes(當你宣告這個變數時,這個程式就在記憶體中佔用的空間)。值的範圍 1.7*10^-308 ~ +1.7*10^+308(這個變數所能接受的最大數值或範圍)。
有用double比較佔記憶體空間但是可以容納的小數位數比較多
int & double 的差別在 int 只能接受整數而已 ( 不接受小數的部分 )但 double 卻包含了整數及浮點數(十進位的小數第15位)
int sum;這裡宣告sum為整數之後那個double是改為可出現小數沒有double的話,跑出來sum會是整數有double的話,double是宣告sum為小數差在sum表達的方式
RUN一次就知道!
在int的情況下,相除下來如果有小數:有加double會在小數最末位四捨五入;沒有加double則會直接刪去小數位。
老師我run過了!真的!!這是結果↓↓↓int sum=596;average=(double)sum/10;average=sum/10;把int sum=596;的int換成double宣告average為doublerun出59.6沒換的話 就只有59
運算式決定最後型態是依照某個最大型態來決定的,double>float>int,所以前者(double)為最大型態數,後者(無double,只有int型態)為最小型態數。
有double會四捨五入到小數第一位沒有double的話 就只有除出來的整數老師 我跟B9633063一起RUN過了!真的!可是他比我先打了..冏我的台詞都被他搶走了= =!
float 是單精準度當浮點數ㄉ小數超過第六位時會以四捨五入法取到小樹第六位double 是雙精準度當浮點數ㄉ小數位超過15位數會自動四捨五入到第15位
double為類別上的靜態資料成員,表示double型態的正無限大值,也可能表示浮點數的一個非數字型態,表示數學上的未定義值,正無限大就是無限大數,所以比較會正確
double是倍精確實數有加double算出來的結果會有小數點沒有加double算出來的結果是整數
int宣告的是整數.而有加double會取到小數第一位,沒有的話就會取整數。
int為整數型態所以有加double會使產生的數有小數點沒有加double則為整數
當程式中有double時,若無法整數除盡,小數點超過第5位時,會以四捨五入法取小數點第4位,所以整數+小數點最多為7位,由於double長度為64位元(8Bytes),而1個字元佔2Bytes,7*2=14,所以最高只能取到小數點第4位。若沒加入double,則會直接取整數,小數點無條件捨去。程式中,加不加入double,差別應該是這個以上,程式跑過後,我的想法。
double 倍精確度浮點數精確度比較高EX:123.456(double)123.456f(float)
int宣告為整數而有加double會四捨五入取到小數第一位,沒有加double的話是會取整數double倍精確度浮點數精確度比較高
有加double 在執行結果如果無法整除因為只有顯示六位數所以會在第6個數字後進行四捨五入例: 原本:813/7=116.142857....經程式Run過得:116.143而沒加double 就是只取整數
因為上面宣告sum是整數而average=(double)sum/10;就是把sum轉換成double的型態強制他不成為整數,而average=sum/10 因它上面宣告 int sum;所以顯示出來的會是整數。
有double四捨五入取到小數第一位(小數點)沒有double只有整數
double和float都可以顯示小數點,可是因為doubel是8bytes,但float卻是4bytes!所以相較記憶體大小之下,double所能表達的小數點就比float要的多~懂嗎?!所以在沒有相當的必要下,選用float比double要省電腦資源的多! 喔,對了,int是整數宣告
宣告sum為int,int為整數資料所以求 average =sum / 10的值會為整數如果加上 double而sum必須已double的形式運算double為倍精確度資料,可印出小數位數資料則求 average =(double) sum / 10的值會出現小數位數資料
雙倍精度浮點數(double)佔8 bytes浮點數(float)佔4 bytes雙倍精度浮點數(double)比浮點數(float)可存放範圍還大!依照程式RUN~不加double,只顯示整數! 加double,顯示至小數第三位!
有double時,會以double去執行如果沒有指示的話,會以int執行
測出來的結果是有無小數點之分有double的話就有小數點 因代表的空間可以比較大沒double的話就沒有小數點是整數代表空間較小了,因此四捨五入double所佔的空間比較大float=4個位元組double=8個位元組
int 宣告為整數當沒有 double 時,只會以整數型態呈現。float 宣告為浮點數因為 double 佔 8 bytes float 佔 4 bytes兩者相較之下,所佔的記憶體大小也有所不同。所以,當有 double 時,會以浮點數型態呈現。並且會四捨六入輸出結果。
(doubie)倍精度浮點數是佔有8bit的空間而浮點數所佔是4bit的空間而且浮點數表示的範圍在1.2e-38到3.4e38而倍精度浮點數所表示的範圍在2.2e-308到1.8e308應該是這樣吧! 錯了我就不知道囉!
int宣告sum為整數加了double的話就會到小數點而小數則分為float和doubledouble表達的範圍較float大所以有些小數在double裡可以表達但在float裡則不行
double是倍精確實數 所以會取到小數第一位如果不加double就會直接進位...
啊,我剛剛說錯了如果不加double就會無條件捨去...
double意思是倍精確實數ㄉ意思,加上了double的話~~最後的結果會出現小數第三位,如果沒有加double最後的結果會是整數
float是單倍精確度double是雙倍精確度雙倍精確度會比單倍精確度來的精準
double雙倍精度浮點數用了八個位元組存放單精度浮點數功能可以顯示到小數點但是佔了比較大的記憶體
int是整數的資料型態運算出來的數字沒有小數而double是倍精浮點數運算出來的數字會有小數也比較精確
因為sum的型態是整數(int)所以沒加double時得出來的數一定是整數如果加了double是強制把小數點顯示出來
沒加double時是整數加了double運算出有小數比較準確!!!!
沒加double時是整數加了double運算出有小數
沒double沒小數點(小數點後數字無條件捨去)有double有顯示小數點
有int只會到整數(不會有小數)變換成double會到末端再四捨五入程式已run過
有double的會有小數點,四捨五入到第一位沒有double的話 就是整數
int為整數有加double使數字會有小數點沒有加double的為整數
一個有小數位一個沒有小數位
int 沒有小數float 有小數
bouble為雙精浮點數 可顯示小數點範圍廣 所以運算的結果會較為精確
有double代表有小數點表示的小數點範圍很大沒有double只有整數表示小數點的範圍比較小
有double時有小數點反之無double時則為整數
int為整數型態只會到整數double 倍精確度浮點數精確度比較高有double會在小數最末位四捨五入沒有double會直接刪去小數位
int是宣告為整數double倍精準度有加double時最多可達15小數位數沒有double就只有整數因為只有int咩
double佔8 bytes 有小數點 (4捨5入取第6位)float 佔4 bytes沒小數
當加了int就"只能"顯示出整數而double是可以有整數and小數點有些程式會需要加上double就是為了要更精確的得到答案可是~加了double所佔的位元會更大喔
張貼留言
64 則留言:
有double時會有小數點
沒有double則只有整數
double是倍精浮點數
有double可以表示的小數點範圍很大
沒有double的話
能表示小數點的範圍一定比較小
相較之下
float可以表示小數點範圍
就比double來的小
順帶一提
float是4 bytes
double是8 bytes
byte 的值域 -128 ~ 127
有double(8 bytes)
可以表示的小數點範圍很大
沒有double
能表示小數點的範圍一定比較小
相較之下
float(4 bytes)
可以表示小數點範圍
就比double來的小
byte 的值域 -128 ~ 127
有打double時有小數點
沒有打double時則只有到整數
沒有小數點
有double有小數
沒double沒小數
double是8bytes可印出8個數字含小數點
超過8bytes的小數點會無條件四捨五入
較大的浮點數型態轉至較小的浮點數型態
會有潛在問題
也就是會漏失精確度
原值可能超出目的型態所能容納的範圍
如此結果不可預知
float有效位數有4個位元組
而double有6個位元組
要注意的是較大的浮點數型態轉至較小的浮點數型態
會有潛在問題 也就是會漏失精確
原值可能超出目的型態所能容納的範圍
如此結果不可預知
因為float的有效位數至少有4個位元組
而double至少有6個位元組
答案用程式跑就知道!我問的是差別!
有加 double 的類型變量跟沒加 double 的類型變量,差別是所需記憶體空間大小及值域所能接受的範圍不一樣。
double倍精確度資料型別
長度為64位元(8Bytes)
在程式中
有加double時
可執行有效位數15位數
如果沒加double時
則只會到整數位
double 倍精確數資料型態,所佔空間8bytes(當你宣告這個變數時,這個程式就在記憶體中佔用的空間)。值的範圍 1.7*10^-308 ~ +1.7*10^+308(這個變數所能接受的最大數值或範圍)。
有用double比較佔記憶體空間
但是可以容納的小數位數比較多
int & double 的差別
在 int 只能接受整數而已
( 不接受小數的部分 )
但 double 卻包含了整數及浮點數
(十進位的小數第15位)
int sum;這裡宣告sum為整數
之後那個double是改為可出現小數
沒有double的話,跑出來sum會是整數
有double的話,double是宣告sum為小數
差在sum表達的方式
RUN一次就知道!
在int的情況下,
相除下來如果有小數:
有加double會在小數最末位四捨五入;
沒有加double則會直接刪去小數位。
老師我run過了!真的!!
這是結果↓↓↓
int sum=596;
average=(double)sum/10;
average=sum/10;
把int sum=596;的int換成double
宣告average為double
run出59.6
沒換的話 就只有59
運算式決定最後型態是依照某個最大型態來決定的,double>float>int,所以前者(double)為最大型態數,後者(無double,只有int型態)為最小型態數。
有double會四捨五入到小數第一位
沒有double的話 就只有除出來的整數
老師 我跟B9633063一起RUN過了!真的!
可是他比我先打了..冏
我的台詞都被他搶走了= =!
float 是單精準度
當浮點數ㄉ小數超過第六位時
會以四捨五入法取到小樹第六位
double 是雙精準度
當浮點數ㄉ小數位超過15位數
會自動四捨五入到第15位
double為類別上的靜態資料成員,表示double型態的正無限大值,也可能表示浮點數的一個非數字型態,表示數學上的未定義值,正無限大就是無限大數,所以比較會正確
double是倍精確實數
有加double算出來的結果會有小數點
沒有加double算出來的結果是整數
int宣告的是整數.
而有加double會取到小數第一位,
沒有的話就會取整數。
int為整數型態
所以有加double會使產生的數有小數點
沒有加double則為整數
當程式中有double時,
若無法整數除盡,小數點超過第5位時,
會以四捨五入法取小數點第4位,
所以整數+小數點最多為7位,
由於double長度為64位元(8Bytes),
而1個字元佔2Bytes,7*2=14,
所以最高只能取到小數點第4位。
若沒加入double,則會直接取整數,
小數點無條件捨去。
程式中,加不加入double,差別應該是這個
以上,程式跑過後,我的想法。
double 倍精確度浮點數
精確度比較高
EX:
123.456(double)
123.456f(float)
int宣告為整數
而有加double會四捨五入取到小數第一位,
沒有加double的話是會取整數
double倍精確度浮點數
精確度比較高
有加double 在執行結果如果無法整除
因為只有顯示六位數
所以會在第6個數字後進行四捨五入
例:
原本:813/7=116.142857....
經程式Run過得:116.143
而沒加double 就是只取整數
因為上面宣告sum是整數而average=(double)sum/10;就是把sum轉換成double的型態強制他不成為整數,而average=sum/10 因它上面宣告 int sum;所以顯示出來的會是整數。
有double四捨五入取到小數第一位(小數點)
沒有double只有整數
double和float都可以顯示小數點,可是因為doubel是8bytes,但float卻是4bytes!所以相較記憶體大小之下,double所能表達的小數點就比float要的多~懂嗎?!所以在沒有相當的必要下,選用float比double要省電腦資源的多! 喔,對了,int是整數宣告
宣告sum為int,int為整數資料
所以求 average =sum / 10的值會為整數
如果加上 double
而sum必須已double的形式運算
double為倍精確度資料,可印出小數位數資料
則求 average =(double) sum / 10的值會出現小數位數資料
雙倍精度浮點數(double)佔8 bytes
浮點數(float)佔4 bytes
雙倍精度浮點數(double)比浮點數(float)可存放範圍還大!
依照程式RUN~不加double,只顯示整數!
加double,顯示至小數第三位!
有double時,會以double去執行
如果沒有指示的話,會以int執行
測出來的結果是有無小數點之分
有double的話就有小數點
因代表的空間可以比較大
沒double的話就沒有小數點
是整數代表空間較小了,因此四捨五入
double所佔的空間比較大
float=4個位元組
double=8個位元組
測出來的結果是有無小數點之分
有double的話就有小數點
因代表的空間可以比較大
沒double的話就沒有小數點
是整數代表空間較小了,因此四捨五入
double所佔的空間比較大
float=4個位元組
double=8個位元組
測出來的結果是有無小數點之分
有double的話就有小數點
因代表的空間可以比較大
沒double的話就沒有小數點
是整數代表空間較小了,因此四捨五入
double所佔的空間比較大
float=4個位元組
double=8個位元組
int 宣告為整數
當沒有 double 時,只會以整數型態呈現。
float 宣告為浮點數
因為 double 佔 8 bytes
float 佔 4 bytes
兩者相較之下,所佔的記憶體大小也有所不同。
所以,當有 double 時,會以浮點數型態呈現。
並且會四捨六入輸出結果。
(doubie)倍精度浮點數是佔有8bit的空間
而浮點數所佔是4bit的空間
而且浮點數表示的範圍在1.2e-38到3.4e38
而倍精度浮點數所表示的範圍在2.2e-308到1.8e308
應該是這樣吧! 錯了我就不知道囉!
int宣告sum為整數
加了double的話就會到小數點
而小數則分為float和double
double表達的範圍較float大
所以有些小數在double裡可以表達
但在float裡則不行
double是倍精確實數
所以會取到小數第一位
如果不加double
就會直接進位...
啊,我剛剛說錯了
如果不加double
就會無條件捨去...
double意思是倍精確實數ㄉ意思,加上了double的話~~最後的結果會出現小數第三位,如果沒有加double最後的結果會是整數
float是單倍精確度
double是雙倍精確度
雙倍精確度會比單倍精確度來的精準
double雙倍精度浮點數
用了八個位元組存放單精度浮點數
功能可以顯示到小數點
但是佔了比較大的記憶體
int是整數的資料型態
運算出來的數字沒有小數
而double是倍精浮點數
運算出來的數字會有小數
也比較精確
因為sum的型態是整數(int)
所以沒加double時得出來的數一定是整數
如果加了double是強制把小數點顯示出來
沒加double時是整數
加了double運算出有小數
比較準確!!!!
沒加double時是整數
加了double運算出有小數
沒double沒小數點(小數點後數字無條件捨去)
有double有顯示小數點
有int只會到整數(不會有小數)
變換成double會到末端再四捨五入
程式已run過
有double的會有小數點,四捨五入到第一位
沒有double的話 就是整數
int為整數
有加double使數字會有小數點
沒有加double的為整數
一個有小數位
一個沒有小數位
int 沒有小數
float 有小數
bouble為雙精浮點數 可顯示小數點範圍廣 所以運算的結果會較為精確
有double代表有小數點
表示的小數點範圍很大
沒有double只有整數
表示小數點的範圍比較小
有double時有小數點
反之無double時則為整數
int為整數型態
只會到整數
double 倍精確度浮點數精確度比較高
有double會在小數最末位四捨五入
沒有double會直接刪去小數位
int是宣告為整數
double倍精準度
有加double時
最多可達15小數位數
沒有double
就只有整數
因為只有int咩
double佔8 bytes
有小數點 (4捨5入取第6位)
float 佔4 bytes
沒小數
當加了int
就"只能"顯示出整數
而double
是可以有整數and小數點
有些程式會需要加上double
就是為了要更精確的得到答案
可是~
加了double
所佔的位元會更大喔
int為整數型態
所以有加double會使產生的數有小數點
沒有加double則為整數
張貼留言