2011-10-06 35 views
0

我正在为我们的项目在学校使用一个应用程序。我的应用程序是关于电阻颜色代码计算。我的代码正在工作,但在显示值时,我将该值用作字符串。我的问题是我想让我的结果值为1.2K欧姆,1.5M欧姆或5.4M欧姆,就像那样。因为在我的代码中,结果将显示1200欧姆,1500K欧姆或5400K欧姆。请帮帮我。先谢谢您的帮助。用于在android中计算的代码

这是我对a,b,c,d的代码,值是EditText中的显示。

calcu是一个按钮。

calcu.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      //for first band 
      if (a=="Black") 
       a = " "; 
      if (a=="Brown") 
       a = "1"; 
      if (a=="Red") 
       a = "2"; 
      if (a=="Orange") 
       a = "3"; 
      if (a=="Yellow") 
       a = "4"; 
      if (a=="Green") 
       a = "5"; 
      if (a=="Blue") 
       a = "6"; 
      if (a=="Violet") 
       a = "7"; 
      if (a=="Gray") 
       a = "8"; 
      if (a=="White") 
       a = "9"; 
      //for second band 
      if (b=="Black") 
       b = "0"; 
      if (b=="Brown") 
       b = "1"; 
      if (b=="Red") 
       b = "2"; 
      if (b=="Orange") 
       b = "3"; 
      if (b=="Yellow") 
       b = "4"; 
      if (b=="Green") 
       b = "5"; 
      if (b=="Blue") 
       b = "6"; 
      if (b=="Violet") 
       b = "7"; 
      if (b=="Gray") 
       b = "8"; 
      if (b=="White") 
       b = "9"; 
      //for multiplier 
      if (c=="Black") 
       c = " "; 
      if (c=="Brown") 
       c = "0"; 
      if (c=="Red") 
       c = "00"; 
      if (c=="Orange") 
       c = "000"; 
      if (c=="Yellow") 
       c = "0000"; 
      if (c=="Green") 
       c = "00000"; 
      if (c=="Blue") 
       c = "000000"; 
      if (c=="Violet") 
       c = "0000000"; 
      if (c=="Gray") 
       c = "00000000"; 
      if (c=="White") 
       c = "000000000";    
      //for Tolerance 

      if (d=="Brown") 
       d = "1"; 
      if (d=="Red") 
       d = "2";   
      if (d=="Green") 
       d = "0.5"; 
      if (d=="Blue") 
       d = "0.25"; 
      if (d=="Violet") 
       d = "0.1"; 
      if (d=="Gray") 
       d = "0.05"; 
      if (d=="Gold") 
       d = "5"; 
      if (d=="Silver") 
       d = "10"; 

Value.setText(a + b + c + "\u2126" + " " + "\u00B1" + d + "%" + " Tolerance"); 
+0

所以你的显示字符串说:“1200欧姆”和“5400K欧姆”,但希望“1.2K欧姆”和“5.4M欧姆”? –

+0

是!但我将所有数字都设置为字符串。 – ikzton

+0

我看到'Value.setText(a + b + c +“\ u2126”+“”+“\ u00B1”+ d +“%”+“Tolerance”);'在您对End.Fouad的评论中。你能发表一些更多的代码来显示'a','b','c'和'd'是什么吗? (是字符串,整数等?) –

回答

1
int result = getTheResult(); 
String Result = ""; 
if(result > 0 && result < 1000) Result = "" + result + " Ohms"; 
else if(result >= 1000 && result < 1000000) Result = "" + (result/1000) + "K Ohms"; 
else if (result >= 1000000) Result = "" + (result/1000000) + "M Ohms"; 
else Result = "Invalid Value"; 
+0

谢谢你这个人。它在“getTheResult”中有错误。我在editText中显示值,我的代码是这样的。 Value.setText(a + b + c +“\ u2126”+“”+“\ u00B1”+ d +“%”+“Tolerance”);其中a是第一个频段,b是第二个,c是乘数,但a,b,c都是字符串。在C我只是把“K”的橙色或“0 K”的黄色,就像那样.. :( – ikzton

+1

这是你的方法的名称,执行计算 –

+0

我试过这个,但是当我选择棕色,红色,红色它将显示1Kohms仅..这是我做串E = A + b + C; INT \t肯=的Integer.parseInt(E); \t INT结果=肯; \t字符串结果= “” ; \t if(result> 0 && result <1000)Result =“”+ result +“Ohms”; \t else if(result> = 1000 && result <1000000)Result =“”+(result/1000)+“ K Ohms“; \t else if(result> = 1000000)Result =”“+(result/1000000)+” M欧姆“; \t else Result =“无效值”; – ikzton