在项目中用到数据格式化方式,替代String.format()方法。此方法更好兼容多语言,比如阿拉伯语时可以将’#‘放置从右往左在后续加上字符,而String.format()使用%s则会使阿拉伯中会强制从左往右造成格式化问题。DecimalFormat还有一个优点就是可以不显示小数点’.0’。
示例代码如下:
public static void main(String[] args) {
printDistance(5000f);
printDistance(5200f);
printDistance(2000f);
printDistance(2200f);
printDistance(200f);
printDistance(220f);
}
public static void printDistance(float distance) {
DecimalFormat decimalFormat;
if (distance >= 5000) {
decimalFormat = new DecimalFormat("#km");
System.out.println("Format distance:" + decimalFormat.format(Math.round(distance / 1000.0f)));
} else if (distance >= 1000) {
decimalFormat = new DecimalFormat("#.#km");
System.out.println("Format distance:" + decimalFormat.format(distance / 1000.0f));
} else {
decimalFormat = new DecimalFormat("#m");
System.out.println("Format distance:" + decimalFormat.format(Math.round(distance / 10.0f) * 10));
}
}
输出结果如下:
Format distance:5km
Format distance:5km
Format distance:2km
Format distance:2.2km
Format distance:200m
Format distance:220m