[問題] 計算值為零
各位好,我在網路上看到下面一段程式,
我要取值在MainActivity中顯示f2跟f4的數值,
可是我能在MainActivity中顯示出f2的值,
卻顯示不出f4的值,
我用debugger看,f2有值,f3是f2的值(這f3是我用來觀看 ),
但f4的值總是為0,
(1)照理來講,應該是將f2做運算而已,怎麼會是0而已?
請各位大大解說一下。
另外,我想請教,這應該跟Java有關,但我沒學過Java,
(2)就前面f2已設為int,為什麼還要設f2=(int)並用()號包住裡面的計算式?
因為我移除等號後面的()號會出現錯誤,把(int)單獨移掉也是錯,這是甚麼性質?
(3)另外,我如果for(i=0;i<30;i++);
其中的i算int還是哪種類型?
謝謝!
public void Test()
{
float frequency=0;
int f1=0,f2=0,i=0;
int f4=0;
int f3=0;
AAA_time = System.currentTimeMillis();
frequency = AAA_time - LAST_AAA_time;
frequency = 1000/frequency*60;
f1=(int)frequency;
f[29]=(int)frequency;
if(f[0]>0)
{
for(i=0;i<30;i++)
f2=f2+f[i];
f2=(int) ((f2/30) + 0.5);
f3=f2;
f4= (60/f3)*1000;
Message msg =
mHandler.obtainMessage(MainActivity.MESSAGE_READ_AAAT);
Bundle b = new Bundle();
b.putInt("f2",f2);
b.putInt("f3",f4);
msg.setData(b);
msg.sendToTarget();
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.43.36
※ batista5566:轉錄至看板 java 05/20 19:56
→
05/20 20:20, , 1F
05/20 20:20, 1F
→
05/20 20:22, , 2F
05/20 20:22, 2F
→
05/20 21:02, , 3F
05/20 21:02, 3F
→
05/20 21:04, , 4F
05/20 21:04, 4F
真奇妙,為什麼60改為60.0即可?
我前面有測試過,
一開始 int f4=0; 改為 float f4=0;
接著 f4= (60/f3)*1000; 改為 f4=(float) (60/f3)*1000;
b.putInt("f3",f4); 改為 b.putFloat("f3",f4);
接收端的地方也將int/Int改為float/Float等,
也是0,
但是加".0"就可以了,
可否說一下這加".0"的意思在哪嗎? 感謝><"
※ 編輯: batista5566 來自: 140.124.43.36 (05/20 21:13)
※ 編輯: batista5566 來自: 140.124.43.36 (05/20 21:19)
→
05/20 21:42, , 5F
05/20 21:42, 5F
→
05/20 21:44, , 6F
05/20 21:44, 6F
→
05/21 00:03, , 7F
05/21 00:03, 7F
→
05/21 00:03, , 8F
05/21 00:03, 8F
→
05/21 00:05, , 9F
05/21 00:05, 9F