1 package com.sharkysoft.printf; 2 3 import java.math.BigDecimal; 4 import com.sharkysoft.math.MathToolbox; 5 6 final class Formatter_g_Bi extends Formatter_g 7 { 8 9 Formatter_g_Bi(final FormatSpecifier ipPfs) 10 { 11 super(ipPfs); 12 } 13 14 void format(final PrintfState ipPs) 15 { 16 adjustWidthAndPrecision(ipPs); 17 if 18 ( shouldUseScientific 19 ( MathToolbox.toScientificNotation 20 ( ((BigDecimal) ipPs.mapArgs[ipPs.mnArgIndex]).doubleValue() 21 ) 22 ) 23 ) 24 formatBigDecimalScientific(ipPs); 25 else 26 formatBigDecimal(ipPs); 27 } 28 29 Class[] argTypes() { 30 Class[] types = super.argTypes(); 31 types[0] = BigDecimal.class; 32 return types; 33 } 34 } 35