¿Cuál sería una buena manera de recortar más de dos ceros a la derecha para un BigDecimalRecorte Más de dos ceros a la derecha en BigDecimal
Así 1.2200 imprimiría 1,22 y 1,0000 imprimiría 1.00
Editar Así como para volver 1.222200 como 1.2222 y 1,220000001 1,220000001 como etc. Así que sin tener en cuenta dos primeros ceros Quiero recorte los 0s entrantes y no recortar distinto de cero valora
Una forma podría ser a multiplicarse, a continuación, aplicar el construido en el ajuste de arrastre ceros y luego dividir por 100. Podría ser problemático con casos de esquina pero los valores en mi problema están basados en monedas y nunca superarían los límites establecidos por Java (o si no significa que mi software está lidiando con ofertas que están en gazzilions de dólares)
La solución fea es como folows
System.out.println(((new BigDecimal("1.230223000")
.multiply(new BigDecimal("100.0"))
.stripTrailingZeros()).divide(new BigDecimal("100.0"))));
nota de que el nuevo conflicto con los requisitos de sus originales: ¿cómo puede el '1.230223000' ser convertido en' 1.230223', pero '' 1.0000' debe imprimir 1.00'? –
no, no lo hacen Joachim. Lea de nuevo. Quiero ignorar los primeros dos ceros después de decimal para recortar. Y la entrada siempre será de al menos tipo x.xx – geoaxis
sí, me di cuenta de que después de publicar mi comentario. ¿Mi respuesta (actualizada) ayuda? –