2013-03-18 6 views
0

Я хочу преобразовать двойную строку в строку. И отображать только десятичные знаки.Отображать только десятичные разряды в строке

На этом пути:

Double: 123.465 
String: 46 

Double: 1123.465 
String: 46 

Double: 123.46555987 
String: 46 

Теперь мой вопрос, как я могу это сделать и что это лучший способ?

+1

* "? Что это лучший способ" * [? Что вы пробовали] (HTTP : //www.whathaveyoutried.com/) –

+0

Вы что-то пробовали? Если да, разместите здесь код. Если нет, вернитесь после попытки. – Krishnabhadra

+0

преобразовать double в строку и разбить строку после десятичной точки –

ответ

0

Double может быть преобразован в строку с использованием toString(). Проверьте документы API. Если у вас есть double, то это может быть бесполезно для Double значение автоматически с Java 1.6 и более поздних версий. Чтобы получить десятичные значения, вы можете использовать второй параметр substring для ограничения выхода.

s.substring(s.indexOf("."), s.indexOf(".")+2) 

или использовать округление до двух знаков после запятой

Double.valueOf(Math.round((d/(long)d)*100)/100).toString() 
0

Не совсем самый хороший метод, но он работает. Просто измените 123.456 на любое значение, которое вы пожелаете, возможно, поместите его в метод.

public class Test { 
    public static void main(String args[]) { 
     double fractionalPart = 123.456 % 1; 
     DecimalFormat twoDForm = new DecimalFormat("#.00"); 
     System.out.println(String.valueOf(
       Double.valueOf(twoDForm.format(fractionalPart))).substring(2)); 
    } 
} 
+2

Вы собираетесь кодировать код этого человека для них, когда они станут вашим коллегой? –

+0

Нет, я просто пытался дать ему руку, я только написал две строки. Я бы не беспокоился, если бы это было большое количество кода. – david99world

+0

Это не даст точное определение того, что требуется OP. – subodh

0

Это может работать:

Double d = 123.4567; 
String stringRep = Double.toString(d).split(".")[1]; 
//Print or use stringRep 
0
Double: 123.465 
String: 46 

Double d = new Double(123.465); 
String str = String.valueOf(d); 
Sytem.out.println(str.substring(str.lastIndexOf("."),str.lastIndexOf(".")+2)); 
0

Это должно помочь вам

public static int twoDecimal(double original) 
{ 
    BigDecimal bd = new BigDecimal(original % 1); 
    BigDecimal rounded = bd.setScale(2, BigDecimal.ROUND_DOWN); 

    return (int) (rounded.doubleValue() * 100); 
} 
Смежные вопросы