第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于java中float型的問(wèn)題

關(guān)于java中float型的問(wèn)題

hy_wang 2017-07-10 19:52:00
1.請(qǐng)問(wèn)大家這段代碼為什么正確public void calcAvg(float a,float b){? ? float avg=(a+b)/2;? ? System.out.println("平均分:"+avg);}不是講使用float賦值的時(shí)候要在后邊加f嗎.這個(gè)沒(méi)有加為什么正確2.請(qǐng)問(wèn)為什么這個(gè)輸出結(jié)果是87.0.不應(yīng)該是87.5嗎/端點(diǎn)調(diào)試功能我怎么調(diào)也是輸出結(jié)果就變成87.0.請(qǐng)教大家這是為什么public class 數(shù)組 {? ?? ? ? public static void main(String[] args) {? ? ? ?? // 創(chuàng)建對(duì)象,對(duì)象名為hello? ? 數(shù)組 hello = new ?數(shù)組(); ? ? ? ? // 調(diào)用方法,傳入兩門課程的成績(jī) hello.calcAvg(94, 81); } public void calcAvg(int a,int b){ ? ? int c=a+b; ? ? double avg=c/2; ? ? System.out.println("平均分"+avg); }}
查看完整描述

3 回答

已采納
?
黃小凡

TA貢獻(xiàn)69條經(jīng)驗(yàn) 獲得超36個(gè)贊

其實(shí)這涉及到精度的問(wèn)題,容我慢慢道來(lái):

一般的小數(shù),比如1.5,2.5,0.5,在java里面,這些都默認(rèn)屬于double類型的數(shù)據(jù),我們都知道float類型是4字節(jié),也就是32位,double是8個(gè)字節(jié),也就是64位,所以我們一般在定義float函數(shù)的時(shí)候,比如:float a = 0.1; 是會(huì)報(bào)錯(cuò)的,因?yàn)檫@樣java虛擬機(jī)認(rèn)為會(huì)丟失精度(把一個(gè)64位的數(shù)據(jù),賦值給32位的數(shù)據(jù)),所以不能通過(guò)!必須加f 強(qiáng)制轉(zhuǎn)換為float類型;

再來(lái)看下你的第一個(gè)問(wèn)題:

????參數(shù)a 是float類型,然后參數(shù)b也是float類型,最后(a+b)/2 還是float類型。

????所以,把一個(gè)float類型 的數(shù)據(jù)賦值給一個(gè)float類型沒(méi)錯(cuò);

第二個(gè)問(wèn)題:

????a是整數(shù),b是整數(shù),c=a+b,所以c還是整數(shù),c/2,最后還是整數(shù),所以(94+81)=175,175/2=87.5,但是由于c/2是一個(gè)整數(shù),所以87.5會(huì)強(qiáng)制轉(zhuǎn)換為87,最后把一個(gè)整數(shù)87賦值給double類型,所以又變成87.0。

你可以再試一下,輸出一下c/2,就是87;

你也可以試一下,把c/2改成c/2.0 就會(huì)輸出87.5

????

查看完整回答
3 反對(duì) 回復(fù) 2017-07-10
  • hy_wang
    hy_wang
    有點(diǎn)看不懂..這個(gè)float a=0.1 float不是單浮點(diǎn)嗎 這不是剛好一個(gè)小數(shù)點(diǎn).剛好滿足嗎,怎么會(huì)判斷丟失精度.那么照你這樣說(shuō)的話float到底應(yīng)該什么時(shí)候加f什么時(shí)候不加f...因?yàn)槲也辉G訥個(gè)判斷究竟一位小數(shù)的時(shí)候什么時(shí)候丟失什么時(shí)候不丟失 2.第二個(gè)問(wèn)題請(qǐng)問(wèn)也是涉及精度所以變成2.0就好了嗎,我的疑問(wèn)是我都已經(jīng)定義avg是double型了,在我的理解力一個(gè)整數(shù)175/2不是87.5,剛好我定義為double型它不是就應(yīng)該顯示87.5嗎..非常感謝你
  • hy_wang
    hy_wang
    搞懂了,非常感謝!
?
黃小凡

TA貢獻(xiàn)69條經(jīng)驗(yàn) 獲得超36個(gè)贊

首先,參數(shù)a 是float類型,然后參數(shù)b也是float類型,最后(a+b)/2 還是float類型。

所以,把一個(gè)float類型 的數(shù)據(jù)賦值給一個(gè)float類型有錯(cuò)嗎?顯然沒(méi)有啊

查看完整回答
反對(duì) 回復(fù) 2017-07-10
  • 3 回答
  • 0 關(guān)注
  • 2054 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)