тип данных для представления большого десятичного числа в Java

На самом деле вам не нужно передавать это в качестве аргумента вашей функции, потому что у вас есть объект события щелчка , к которому вы можете получить доступ. Итак:

<a href="" id="someId" onclick="clickEventHandler()"></a>
<script>
function clickEventHandler(event) {

    if (!event) {
        event = window.event; // Older versions of IE use 
                              // a global reference 
                              // and not an argument.
    };

    var el = (event.target || event.srcElement); // DOM uses 'target';
                                                 // older versions of 
                                                 // IE use 'srcElement'
    el.setAttribute('name', el.id);

}
</script>
5
задан jai 22 October 2009 в 09:09
поделиться

4 ответа

Вы должны использовать BigDecimal, но используйте конструктор String , например:

new BigDecimal("10364055.81");

Если вы передадите double BigDecimal , Java должна сначала создать это двойное число - и поскольку двойные числа не могут точно представлять большинство десятичных дробей, он действительно создает значение как 10364055.81000000052154064178466796875 и , затем передает его BigDecimal конструктор. В этом случае BigDecimal не знает, что вы на самом деле имели в виду более округлую версию.

Вообще говоря, использование конструкторов BigDecimal, отличных от String, следует рассматривать как предупреждение о том, что вы не получаете всех преимуществ класса.

] Править - мое первоначальное утверждение, основанное на перечитывании того, что вы хотели сделать, вероятно, слишком сильное. Если большая часть вашей программы не включает математические манипуляции, вы вряд ли заметите разницу в скорости. Это не значит, что вы должны использовать BigDecimals повсюду; скорее, если вы можете получить реальную выгоду от их функций, которые было бы трудно или невозможно реализовать с помощью простых двойников , то не переживайте по поводу незначительной разницы в производительности, которую они теоретически вносят.

18
ответ дан 12 December 2019 в 19:04
поделиться

Как отображается число , отличное от способа хранения номера.

Взгляните на DecimalFormat , чтобы контролировать, как вы можете отображать свои числа при двойном (или с плавающей точкой и т. Д.).

Обратите внимание, что выбор BigDecimal вместо double (или наоборот) имеет плюсы / минусы , и будет зависеть от ваших требований. См. здесь для получения дополнительной информации. Из резюме:

Таким образом, если сырая производительность и пространство - самые важные факторы, примитивные типы с плавающей запятой подходящее. Если десятичные значения необходимо быть изображенным точно, с высокой точностью требуется вычисление или точный контроль округления желательно, только BigDecimal имеет необходимые возможности.

4
ответ дан 12 December 2019 в 19:04
поделиться

Дабл достаточно, чтобы сохранить это число. Если ваша проблема в том, что вам не нравится формат при печати или помещении его в строку, вы можете использовать NumberFormat: http://java.sun.com/javase/6/docs/api/java/text/ NumberFormat.html

1
ответ дан 12 December 2019 в 19:04
поделиться

вы можете использовать double и отображать, если с System.out.printf ().

double d = 100003.81;
System.out.printf("%.10f", d);

.10f - означает double с точностью 10

1
ответ дан 12 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: