2013-03-25 6 views
2

Предположим, что у меня есть значение 12345678, а число говорит x = 2, и я хочу, чтобы конечный результат был 123456.78, и если значение x равно 4, конечным результатом будет 1234,5678.Как добавить десятичную точку перед символами x в Java

Пожалуйста, расскажите, как я могу это достичь?

+3

разделить его на '100.0 'для X 2 и' 1000.0' для X 4 – Habib

+0

Возможный дубликат http://stackoverflow.com/questions/1050989/double-greater-than-sign-in-java – Drogba

+0

@Habib: Я не думаю, что (в предположении, что '12345678' в вопросе является' int'.) – NPE

ответ

9

Учитывая, что вы имеете дело с сдвигая десятичной точки, я бы, вероятно, использовать BigDecimal:

long integral = 12345678L; 
int x = 4; // Or 2, or whatever 
BigDecimal unscaled = new BigDecimal(integral); 
BigDecimal scaled = unscaled.scaleByPowerOfTen(-x); 
System.out.println(scaled); // 1234.5678 
1

Разделите значение на 10 рейз на мощность x.

2

Попробуйте это:

String data = "12345678"; 
    StringBuilder builder = new StringBuilder(data); 
    int x = 4; 
    builder.insert(builder.length() - x, "."); 

    System.out.println(builder); 
+0

Думаю, вам придется анализировать данные снова и снова, если 'String'. –

2
BigInteger d = new BigInteger("12345"); 
BigDecimal one = new BigDecimal(d, 3);//12.345 
BigDecimal two = new BigDecimal(d, 2);//123.45