2015-04-01 4 views
-2

вот кусок кода Java:отображения Java двойное значение

import java.util.*; 

public class javaTests 
{ 
    public static void main(String[] args) 
    { 
     double decimal = 0.60; 

     System.out.println(decimal); 
    } 
} 

Я пытаюсь напечатать 0,60, но компилятор печатает 0.6. Как я могу заставить это напечатать 0.60? Благодаря!

+1

попробовать 'System.out.println (string.Format ("% .2f", десятичное));' – silentprogrammer

+0

Спасибо @singhakash, это сработало отлично! не могли бы вы вкратце объяснить, что делает 'String.format'? – BjC

+0

См. Раздел java formatter http://docs.oracle.com/javase/7/docs/api/index.html?java/util/Formatter.html % [flags] [width] [. Precision] conversion ". " для заполнения, 2 указывает количество цифр и f для float – Chandru

ответ

1
NumberFormat formatter = new DecimalFormat("#0.00"); 
double decimal = 0.60; 
System.out.println(formatter.format(decimal)); 
0

Вы не можете, как вы пытались это сделать. A double сохраняет только номер, он не сохраняет точность, с которой был написан номер. Вы можете изменить форматирование вывода (например, System.out.printf("%.2f", value), или вы можете сохранить значение в другом типе данных (например, BigDecimal, что делает это различие), но нет разницы в двойном значении 0.6 и двойном значении 0.60.

0

Вы также можете отформатировать с помощью класса String.

System.out.println(String.format("%1.2f",.60)); 

метод формат принимает несколько параметров. Первый аргумент всегда строка формата, который использует ниже синтаксис.

%[argument_index$][flags][width][.precision]conversion 

Пожалуйста, обратитесь к документации Java для получения детальной информации о Formatter

http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

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