Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Array de BigDecimal

Olá!

Como ficaria um Array de BigDecimal? tentei rodar o código abaixo mas o numero 2 dentro dos parenteses e as áspas entre colchetes ficam sublinhados de vermelho

val b: Array<BigDecimal> = arrayOf<BigDecimal>(2) { "" }
    b[0] = BigDecimal("0.1")
    b[1] = BigDecimal(0.2)
    println(b.contentToString())
1 resposta
solução!

Segue formas nativas para criação de Array de BigDecimal:

// Devemos informar o tamanho do Array e então inicializá-lo com valores BigDecimal
val arrayBigDecimal = Array<BigDecimal>(size = 2) { BigDecimal.ZERO }

for (i in arrayBigDecimal.indices) arrayBigDecimal[i] = 123.toBigDecimal()
val arrayBigDecimal = arrayOf("123".toBigDecimal(), 1_250.toBigDecimal(), 1.234.toBigDecimal())

Podemos também desenvolver funções para realizar a criação desses Arrays, assim como existem para os primitivos da linguagem e assim como ensinado no curso:

fun bigDecimalArrayOf(vararg valores: String) : Array<BigDecimal> = 
        Array<BigDecimal>(valores.size) {
                valores[it].toBigDecimal() 
        }

val arrayBigDecimal = bigDecimalArrayOf("123", "1250", "1.234")

Vale lembrar que quando estivermos fazendo a conversão de um Double ou Float para BigDecimal, devemos converter tais valores para String e então para BigDecimal, para que os problemas de imprecisão resultantes dessas Classes não afetem o nosso cálculo! Em Kotlin, ao converter um Double ou Float para BigDecimal, usando 1.23.toBigDecimal(), tais valores seram convertidos para String, automaticamente, e depois BigDecimal.

Espero ter ajudado :D Tmj!