На самом деле вам не нужно передавать это в качестве аргумента вашей функции, потому что у вас есть объект события щелчка , к которому вы можете получить доступ. Итак:
<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>
Вы должны использовать BigDecimal, но используйте конструктор String , например:
new BigDecimal("10364055.81");
Если вы передадите double
BigDecimal , Java должна сначала создать это двойное число - и поскольку двойные числа не могут точно представлять большинство десятичных дробей, он действительно создает значение как 10364055.81000000052154064178466796875
и , затем передает его BigDecimal конструктор. В этом случае BigDecimal не знает, что вы на самом деле имели в виду более округлую версию.
Вообще говоря, использование конструкторов BigDecimal, отличных от String, следует рассматривать как предупреждение о том, что вы не получаете всех преимуществ класса.
] Править - мое первоначальное утверждение, основанное на перечитывании того, что вы хотели сделать, вероятно, слишком сильное. Если большая часть вашей программы не включает математические манипуляции, вы вряд ли заметите разницу в скорости. Это не значит, что вы должны использовать BigDecimals повсюду; скорее, если вы можете получить реальную выгоду от их функций, которые было бы трудно или невозможно реализовать с помощью простых двойников
, то не переживайте по поводу незначительной разницы в производительности, которую они теоретически вносят.
Как отображается число , отличное от способа хранения номера.
Взгляните на DecimalFormat , чтобы контролировать, как вы можете отображать свои числа при двойном (или с плавающей точкой и т. Д.).
Обратите внимание, что выбор BigDecimal вместо double (или наоборот) имеет плюсы / минусы , и будет зависеть от ваших требований. См. здесь для получения дополнительной информации. Из резюме:
Таким образом, если сырая производительность и пространство - самые важные факторы, примитивные типы с плавающей запятой подходящее. Если десятичные значения необходимо быть изображенным точно, с высокой точностью требуется вычисление или точный контроль округления желательно, только BigDecimal имеет необходимые возможности.
Дабл достаточно, чтобы сохранить это число. Если ваша проблема в том, что вам не нравится формат при печати или помещении его в строку, вы можете использовать NumberFormat: http://java.sun.com/javase/6/docs/api/java/text/ NumberFormat.html
вы можете использовать double и отображать, если с System.out.printf ().
double d = 100003.81;
System.out.printf("%.10f", d);
.10f - означает double с точностью 10