2017-02-20 16 views
-2

У меня есть двойной var, и мне нужно сделать его в формате 0.00. Работает отлично с этим:Двойной с ровно двумя десятичными знаками в java (без java.text.DecimalFomat)

sum = Math.round(sum*100.00)/100.00; 

я возвращаю его

return Double.toString(sum); 

Но вместо того, чтобы, например, 2.40 дает мне 2,4 (отсутствующий 0 в конце).

У меня есть эти импорта доступны:

import static org.junit.Assert.*; import java.util.*;import org.junit.Test; 

Я решил проблему с DecimalFormat и BigDecimal, но я не могу использовать эти библиотеки.

+0

Почему без 'DecimalFormat'? NB Это не «десятичные числа», они являются переменными с плавающей запятой и действительными значениями. – EJP

+0

Без DecimalFormat, потому что это для приложения, где я могу только написать часть кода. Спасибо за подсказку с десятичными числами, я изучил математику на другом языке, чем английский, поэтому иногда сложно обрабатывать терминологию. – Wojtek

ответ

3

Вы можете просто format струнный

double num = 2.402; 
String output = String.format("%.2f", num); 
System.out.println(output); 
+0

Немного медленнее, ваши очки :-) – thst

0

Вы можете использовать java.lang.String#format() или java.util.Formatter напечатать номер в удобной форме.

return String.format("%.2f", sum); 

должен выполнить эту работу.

0

Просто использовать формат пример:

package com.test; 

import java.lang.*; 
import java.util.*; 

public class StringDemo { 

    public static void main(String[] args) { 

    double piVal = Math.PI; 

    /* returns a formatted string using the specified format 
    string, and arguments */ 
    System.out.format("%f\n", piVal); 
    } 
    } 
output: 3.141593 

% е позволяет количество цифр вы хотите incudes отъ% .2f включает в себя 2 цифры после. enter image description here

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