2010-05-16 4 views
-3
import java.util.Scanner; 

import java.lang.String; 

public class SA3 

{ 

    public static void main(String[] args) 
    { 


     Scanner scan = new Scanner(System.in); 

     System.out.print("Enter student record : "); 

     String scores = scan.nextLine(); 

     String[] StringOfMarks = scores.split(","); 
     double[] Marks = new double[StringOfMarks.length]; 


     for(double i = 0; i < StringOfMarks.length; i++) 
     { 
      Marks[i] = StringOfMarks[i]; 
     } 
     } 

} 
+1

WM, после вашего редактирования он не компилируется. – Oak

+0

Пожалуйста, отредактируйте это, чтобы он даже скомпилировался - я вижу два способа, которыми он не просто смотрит на него. Затем добавьте более четкое описание ошибки. Тогда вы получите ответ. –

+0

Надеюсь, это лучше. –

ответ

0

Это преобразует один элемент массива, а не целый массив.

Кроме того, что такое тип Marks? Если это не double[], вы, вероятно, увидите предупреждение «потеря точности».

+0

это двойной .. –

+0

@WM: в этом случае нам действительно нужен SSCCE (http://sscce.org/) или хотя бы еще какой-то код. – Oak

0

Это не должно влиять на точность ваших удвоений при условии, что он подходит для двойного типа Java. Вы также должны иметь в виду, что не может быть представлено не каждое значение двойника.

5

Изменение последняя часть вашего кода в

for(int i = 0; i < StringOfMarks.length; i++) 
{ 
    Marks[i] = Double.parseDouble(StringOfMarks[i]); 
} 

Вы должны использовать Int набранное переменную для доступа элемента массива и нужно преобразовать строку, явно в два раза.

+0

Также лучше использовать имена переменных, начиная с буквы нижнего регистра, которая является условным обозначением для Java. –

Смежные вопросы