2015-05-02 3 views
-2

У меня есть 2 «ДНК-пряди». Я хочу найти сходство между двумя нитями. Это должен быть процент, и я знаю, что 16/20 приведет к нулю. Что я кодирую?Как получить процент подобия?

public class JoshuaIshaanAnalyzer1 
{ 
    public static void main(String[]args) 
    { 
     System.out.println("DNA Analyzer 1.0"); 

     System.out.println(" "); 

     int similarity = 0; 

     char [] testStrand = {'A','T','T','A','G','A','C','A','T','G','G','A','G','T','T','A','C','C','A','T'}; 

     char [] targetStrand = {'A','T','A','A','G','A','C','A','A','C','G','A','G','A','T','A','C','C','A','T'}; 

     System.out.print("Test Strand: "); 

     for (int i=0; i<testStrand.length; i++) 
      { 
       System.out.print(testStrand[i]); 
      } 

     System.out.println(" "); 

     System.out.print("Target Strand: "); 

     for (int i=0; i<targetStrand.length; i++) 
     { 
      System.out.print(targetStrand[i]); 

     } 


     for (int i=0; i<19; i++) 
     { 
      if (testStrand[i] == targetStrand[i]) 
       { 
        similarity++; 
       } 
     }  
    } 
} 

Всего 20 символов.

+0

Используйте 'float' или' double' – kaykay

+0

@kaykay, как бы я это сделал? – JoJo

+0

Если вы хотите процент и используете только несколько элементов, которые делят 100, просто умножьте их на 100 * до * деления, например. '(100 * 16)/20' = 80 или упрощено до' 5 * 16'. В противном случае см. Комментарий kaykay. – fabian

ответ

1

Для выполнения определения вы должны конвертировать int в команду float.

int numerator; 
int denominator; 
float percentage = (numerator * 100f)/denominator; 

Ключевым моментом здесь является умножать быть 100f. Это будет делать две вещи:

  1. Превращает Ваш выражение результат float
  2. преобразует значение (0.8) в процентном соотношении (80).
Смежные вопросы