2013-12-19 4 views

ответ

18

Я хотел бы использовать Arrays.fill() так как это будет для любого числа нули (или любое другое значение BigDecimal, которое вам нравится) Это работает, потому что BigDecimal является неизменным, не делайте этого для изменяемых значений;)

BigDecimal[] val = new BigDecimal[N]; 
Arrays.fill(val, BigDecimal.ZERO); 
+1

Это самый элегантный солитон, на самом деле. :) –

1
BigDecimal[] val = {new BigDecimal(0),new BigDecimal(0),new BigDecimal(0)}; 

BigDecimal является объектом, а не примитивный тип, так что вам нужно, чтобы создать новые экземпляры объекта, чтобы заполнить массив с ними.

Это ничем не отличается от того, если вы делаете:

BigDecimal val = 0; // Fails 
BigDecimal val = new BigDecimal(0); // Succeeds 
5

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

BigDecimal[] val = { BigDecimal.ZERO, 
        BigDecimal.ZERO, 
        BigDecimal.ZERO }; 
+1

Я ЭТО близко ... – MadConan

0

Вы можете использовать Arrays.fill(Object[], Object) с BigDecimal.ZERO, потому что BigDecimal 's неизменяемы. Таким образом, вам не нужно создавать новый экземпляр для каждого элемента массива.

BigDecimal[] val = new BigDecimal[10]; // 10 for example - chosse the size you want 
Arrays.fill(val, BigDecimal.ZERO); 
0

Вы можете передать значение BigDecimal таким образом:

BigDecimal amt = null; 

amt = new BigDecimal("110000"); 
+0

Это не добавляет полезной информации, которая еще не включена в другие ответы. – Tom

Смежные вопросы