package net.thucydides.core.model;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
public class NumericalFormatter {
public String rounded(final Double value, final int precision) {
DecimalFormat format = decimalFormatWithPrecision(precision);
return format.format(value);
}
public String percentage(final Double value, final int precision) {
DecimalFormat format = percentageFormatWithPrecision(precision);
return format.format(value);
}
private DecimalFormat decimalFormatWithPrecision(final int precision) {
StringBuffer format = new StringBuffer("#");
if (precision > 0) {
format.append(".");
for(int i = 0; i < precision; i++) {
format.append("#");
}
}
return getDecimalFormat(format.toString());
}
private DecimalFormat percentageFormatWithPrecision(final int precision) {
StringBuffer format = new StringBuffer("#");
if (precision > 0) {
format.append(".");
for(int i = 0; i < precision; i++) {
format.append("#");
}
}
format.append("%");
return getDecimalFormat(format.toString());
}
private DecimalFormat getDecimalFormat(String format) {
DecimalFormat result = new DecimalFormat(format);
result.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH));
return result;
}
}