2016-03-11 90 views
2

最近Android Studio完全不合邏輯,完全不合邏輯。 看在控制檯上打印:Android Studio醉了嗎?

I/System.out: 0 + 518 < 518 is true

I/System.out: 518 + 518 < 518 is true

然後看代碼:

System.out.print(j + " + " + squareSize + " < " + squareWidth); 

if (j + squareSize < screenSizeY) { 
    squareHeight = squareSize; 
    System.out.print(" is true"); 
} else { 
    squareHeight = screenSizeY - j; 
    System.out.print(" is false"); 
} 

有可能改變這些變量沒有其他線程。我是否監督了顯而易見的事情,或者Android Studio是否昨晚喝得太多?

+0

的AS版本您使用的)? –

+1

這與Android Studio無關。你是在處理float還是double,還有舍入錯誤?是'screenSizeY == squareWidth'?如果不是,那麼*你的錯誤應該是顯而易見的。 – 323go

+0

我明白了。 AS選擇了一些樂趣。 ;) –

回答

6

看看這兩條線:

(j + " + " + squareSize + " < " + squareWidth) 

if (j + squareSize < screenSizeY) 

如果squareWidth是平等screenSizeY然後AS是喝醉了,否則它不會:)

+3

它們不相等。我必須多次監督它,因爲這兩個名字看起來非常相似。我對Android Studio對藥物消費做出了錯誤的假設表示抱歉。 –

3

在這裏,您打印squareWidth

System.out.print(j + " + " + squareSize + " < " + squareWidth); 

這裏已經screenSizeY檢查:

if (j + squareSize < screenSizeY) { 

今天是星期五,好讓我們喝啤酒自己;