In java come ottengo la prima cifra diversa da zero di un BigDecimal?Come ottenere la prima cifra non nulla di un BigDecimal
Ad esempio:
0.001 => 1
0.02 => 2
987.654 => 9
Per i numeri compresi tra 0 e 1 questo lavoro:
bigDecimal.scaleByPowerOfTen(bigDecimal.precision()).setScale(0, RoundingMode.DOWN)
Per i numeri più grandi di 1 questo funzionerà:
bigDecimal.scaleByPowerOfTen(1-bigDecimal.precision()).setScale(0, RoundingMode.DOWN)
ma c'è una soluzione, che funziona per qualsiasi numero?
magari prendere 'bigDecimal.toPlainString()' e trovare la prima cosa che non è un punto zero o. –
come metterlo in una stringa, sostituendo tutti gli 0 e. con niente e buttando fuori il primo char? – ergonaut
@LucasRoss Dovrei anche occuparmi del segno "-", ecc. E la conversione in stringa sembra molto simile a una "soluzione", non come una "soluzione" ... – slartidan