Как сделать одну цифру после десятичной точки? - PullRequest
0 голосов
/ 30 января 2012

Поиск, как сделать две цифры после десятичной точки, как показано ниже

$ = (double) (((int)($ * 100)) / 100.0);

Кто-нибудь может помочь как сделать «одну цифру» после десятичной точки?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 27 февраля 2013

Если вы используете удвоения для хранения / вычисления значений валюты, то вы, вероятно, окажетесь в мире боли с округлением.После этого я получил шрамы.

Я настоятельно рекомендую вам использовать BigDecimal значения для ALL значений валюты и даже не включать двойные числа в экземплярах.Всегда используйте конструктор String.

См. Связанные вопросы здесь и здесь .

0 голосов
/ 30 января 2012

А как же это:

$ = (double) (((int)($ * 10)) / 10.0);

Примечание: редактируется после комментария.Если вам требуется java и округление вместо усечения, попробуйте это:

import java.lang.Math;

double a;
a = ((double) (round(a*10))) / 10.0;

Это сместит влево точку одной позиции, округлит до ближайшего целого числа, а затем сместит точку назад на одну позицию вправо.

Отредактировано второй раз:

Что вам нужно, пока неясно.Если у вас все в порядке с усечением, как раньше:

double $=1.24*(double)amount;
$ = (double) (((int)($ * 1000)) / 1000.0);
outelc.setText("ELC(1.24)= " + Double.toString($) + " /pc");

Если вам нужно округление:

double $=1.24*(double)amount;
$ = (double) ((round($ * 1000)) / 1000.0);
outelc.setText("ELC(1.24)= " + Double.toString($) + " /pc");
...