簡體   English   中英

Eclipse中的怪異行為

[英]Weird behavior in Eclipse

我現在可能正在經歷的聲音聽起來令人難以置信,但是我將這段代碼與其他操作結合在一起。

double mues1 = 0;
mues1 = (Math.pow((ab/100),2)*tam);

其中ab = 4,tam = 400。

該值應為.64,但變量保持為0.0,並且僅當操作大於1時才更改其值。

如果我用^ 2替換math.pow,則無論哪個值具有“ ab”,該變量都將變為800.0。

為了清楚起見,我正在調試代碼,以便知道其值。

我重新啟動了eclipse和我的計算機,但沒有幫助。

是ab和int嗎? 如果是這樣,則需要將ab/100更改為(double)ab/100ab/100.0 否則,它將執行整數除法,該運算將截斷為0。換句話說,就是4/100 = 0。

問題在於變量ab是一個整數,並且您正在執行整數除法

根據整數除法, 4/100 = 0 要獲得結果0.04 ,請將ab聲明為雙精度型。

僅供參考,Java中的插入字符執行按位xor ,因此您可能不想使用它。

發生這種情況是因為您正在處理int文字,其值4/100 = 0 您應該嘗試使用float常量4.0/100.0來執行此操作。

當您嘗試執行4^100 ,您正在執行“按位異或”,這就是^在Java中的含義。 這不是您想的那樣,所以請不要那樣做。

您正在將float / double值降級為整數,因此任何0.nn都會被截斷為0。

嘗試這個:

mues1 =(Math.pow((((double)ab / 100),2)*(double)tam);

或者只是將abtam聲明為double

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM