2016-12-20 3 views
0

Мне нужна программа, чтобы показывать только 2 числа после десятичного числа в окне ответа. И это показывает мне намного больше. У меня есть "import java.text.DecimalFormat;" но это не сработает. Может быть, я помещаю это где-то неправильно. Вот мой код. Как я должен сделать ответ, чтобы показать только 2 числа после десятичного числа?(JAVA, NetBeans) Мне нужна программа, чтобы показать только 2 числа после десятичного числа в окне ответа

double pb, pc = 0; 

    try { 
     pb=Double.parseDouble(pakavimoPlotas.getText()); 
    } 
    catch (Exception e) { 
     JOptionPane.showMessageDialog(this, "Blogai įvestas pakavimo plotas", 
       "ERROR", JOptionPane.ERROR_MESSAGE); 
    } 

    pb=Double.parseDouble(pakavimoPlotas.getText()); 
    pc=pb*0.17; 
    pakavimoKaina.setText(""+pc); 
    pakavimoKaina2.setText(""+pc+" EUR"); 
+4

Возможный дубликат [Как округлить число до п знаков после запятой в Java] (http://stackoverflow.com/questions/153724/how-to-round-a-number -в-н-десятичные-места-в-Java) – Turamarth

ответ

0

Должность, связанная с Turamarth, вероятно, решит вашу проблему.

Другим решением может быть использование BigDecimal (java.math.BigDecimal) для ваших вычислений. Мне нравится использовать BigDecimal, когда я имею дело с десятичными знаками, которые, как мне известно, нужно масштабировать или округлять. Вот небольшой пример:

public static void main(String[] args) {    
    BigDecimal bd1 = new BigDecimal("33.34528941"); 
    BigDecimal bd2 = new BigDecimal("2.98375667"); 

    BigDecimal bdResult1 = bd1.divide(bd2, 4, RoundingMode.HALF_UP);  
    System.out.println(bdResult1.toString()); 

    BigDecimal bdResult2 = bd1.multiply(bd2); 
    System.out.println(bdResult2.toString()); 
    bdResult2 = bdResult2.setScale(2, RoundingMode.HALF_UP); 
    System.out.println(bdResult2.toString()); 

    BigDecimal bd3 = new BigDecimal(getSomeDecimalText()); 
    bd3 = bd3.setScale(2, RoundingMode.HALF_UP); 
    System.out.println(bd3.toString()); 

    double d = bd3.doubleValue(); 
    System.out.println(d); 
} 

private static String getSomeDecimalText() { 
    return "1.23456789"; 
}