2013-02-27 1 views
0

Я только начинаю изучать Java и нуждаюсь в помощи с основами. Я написал код, который преобразует скорость света в километры в секунду. Код выглядит следующим образом:Программирование на Java - нужно вставить запятые

public class LightSpeed 
{ 
    private double conversion; 

    /** 
    * Constructor for objects of class LightSpeed 
    */ 
    public LightSpeed() 
    { 
     conversion = (186000 * 1.6); //186000 is miles per second and 1.6 is kilometers per mile 
    } 

    /** 
    * Print the conversion 
    */ 
    public void conversion() 
    { 
     System.out.println("The speed of light is equal to " + conversion + " kilometers per second"); 
    } 
} 

Мне нужно преобразование, чтобы запятые в нем, так что число не все бегут вместе. вместо номера, похожего на 297600.0. Мне нужно, чтобы оно выглядело как 297,600.0. Кто-то, пожалуйста, помогите! Спасибо

+2

Посмотрите http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html –

+2

См [Пользовательские настройки форматов ] (http://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html) –

+0

Я думаю, что знаю, куда вы ходите в школу .... :) – CodyBugstein

ответ

2

Необходимо отформатировать номер. Один из способов: DecimalFormat в java.text.

DecimalFormat df = new DecimalFormat("#,##0.0"); 
System.out.println("The speed of light is equal to " + df.format(conversion) + " kilometers per second"); 

Другой способ: printf. Используйте флаг запятой и выведите одну цифру за десятичную точку. Вот more about the flags for printf.

System.out.printf("The speed of light is equal to %,.1f kilometers per second\n", speed); 
0

Измените метод преобразования в

/** 
* Print the conversion 
*/ 
public void conversion() { 
    DecimalFormat myFormatter = new DecimalFormat("###,###.##"); 
    System.out.println("The speed of light is equal to " 
      + myFormatter.format(conversion) 
      + " kilometers per second"); 
}