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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么在Java中(360/24)/ 60 = 0…

為什么在Java中(360/24)/ 60 = 0…

猛跑小豬 2019-11-04 10:26:27
我正在嘗試計算(360/24)/ 60當我應該得到0.25時,我一直得到答案0.0換句話說:我想將360除以24,然后將結果除以60public class Divide {    public static void main(String[] args){      float div = ((360 / 24) / 60);      System.out.println(div);    }}打印輸出:0.0這是為什么?我是在做一些真正愚蠢的事情,還是有充分的理由呢?
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

算術中的所有操作數(shù)都不是浮點數(shù)-因此所有操作均使用整數(shù)算術完成,然后轉換為浮點數(shù)。如果將適當?shù)牟僮鲾?shù)的類型更改為浮點數(shù),則可以正常工作:


float div = ((360 / 24f) / 60); // div is now 0.25

請注意,如果僅將60更改為浮點數(shù),則最終會將360/24作為整數(shù)算術執(zhí)行-在這種情況下可以使用,但不代表我真正的意圖?;旧?,您需要確保以所需的方式執(zhí)行算術運算。


查看完整回答
反對 回復 2019-11-04
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

您實際上是在做整數(shù)除法(JLS 15.17.2)。


float div = ((360 / 24) / 60);

float div = (float) ((360 / 24) / 60);

float div = (float) (15 / 60);

float div = (float) (0);

float div = 0F;

要進行浮點除法,至少一個操作數(shù)必須是浮點數(shù)字類型。


float div = ((360F / 24) / 60);

float div = 15F / 60;

float div = 0.25F;

提示:如果精度很重要double,則在轉換為之前,您需要使用和進行盡可能多的計算float。實際上,除非您的分析表明您絕對需要,否則您float應該始終選擇double。


    float f;


    f = (1E-17F * 1E-17F);

    System.out.println(f); // prints "9.999999E-35"


    f = (float) (1E-17D * 1E-17D);

    System.out.println(f); // prints "1.0E-34"


查看完整回答
反對 回復 2019-11-04
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

在您的主要方法中


public static void main(String[] args){

      float div = ((360 / 24) / 60);

      System.out.println(div);

}

注意360、24和60都是整數(shù)值。這樣,您將獲得怪異的值。


360/24-> 15(非常好)

15/60-> 0.4(浮點)


不幸的是,對于您來說,浮點數(shù)被截斷了,因此您得到:


-> 0 (integer value)

然后,通過將0賦給浮點變量,可以將0更改為浮點值0.0。因此結果。


如果要劃分它們,則需要將它們更改為浮點值。


正確的代碼應如下所示:


public static void main(String[] args){

      float div = ((360.0 / 24.0) / 60.0);

      System.out.println(div);

}


查看完整回答
反對 回復 2019-11-04
  • 3 回答
  • 0 關注
  • 449 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號