как конвертировать Double in Two Precision в ежевику? - PullRequest
1 голос
/ 17 января 2012

Я хочу преобразовать значение Double в Two Precision. предположим, double s = 1.3333333 и его ответ, как это s = 1.33

это делается в Java с использованием java.text.DecimalFormat

double s = 1.4454644567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format(d));

но не в Blackberry.

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Вы можете получить по этому коду:

Formatter format=new Formatter();
double d1=Double.parseDouble(format.formatNumber(1.33333, 2));
double d2=Double.parseDouble(format.formatNumber(10.487586, 3));
double d3=Double.parseDouble(format.formatNumber(10.487586, 5));
System.out.println("=================: "+d1+"======"+d2+"==========="+d3);

Мой вывод в консоли:

================: 1.33 ====== 10.487 =========== 10.48758

Здесь «2», «3» и «5» означают необходимое количество десятичных знаков послеточка (.); * +1010 *

1 голос
/ 17 января 2012

Вы можете использовать это

public static String roundTwoDecimal(String num) {
    // Turn random double into a clean currency format (ie 2 decimal places)
    StringBuffer result;
    double numValue = Double.parseDouble(num);
    if (Math.abs(numValue) < .01) {
        result = new StringBuffer("0.00");
    } else {
        if (numValue > 0)
            numValue = numValue + 0.005;
        else
            numValue = numValue - 0.005;

        result = new StringBuffer(Double.toString(numValue));
        final int point = result.toString().indexOf('.');
        if (point > 0) {
            // If has a decimal point, may need to clip off after 2 decimal
            // places
            if (point < (result.length() - 2)) {
                // eg "3.1415"
                result = new StringBuffer(result.toString().substring(0,
                        point + 3));
            }
        }
    }
    return result.toString();
}
1 голос
/ 17 января 2012

Если вы хотите сделать это вручную, это может помочь вам

    public static String roundDouble(String s, int presicion){
    int initialPos = s.indexOf('.');
    String result = s;
    String pre;
    String pos;

    if (initialPos != -1){
        pre = s.substring(0, initialPos);
        pos = s.substring(initialPos + 1, s.length());
        if (presicion < pos.length()){
            pos = s.substring(initialPos + 1, initialPos + 1 + presicion );
            int dec = Integer.parseInt(pos);
            int next = Integer.parseInt(s.substring(initialPos + 1 + presicion, initialPos + 2 + presicion )); //to round the las digit
            if (next > 4){
                dec = dec + 1;
                pos = dec + "";
                if ((dec+"").length() > presicion){
                    pre = (Integer.parseInt(pre) + 1) + "";
                    pos = "0";
                }
            }
        } else {
        }

        result = pre + "." + pos; 
    }

    return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...