Java:保留小数位数

郎家岭伯爵 2023年04月23日 400次浏览

前言

本文来记录下 Java 中保留小数位数的实现。

实现

场景说明

在一些场景下的要求是这样的:指定小数位如不为零则保留,如为零则不显示。例如 32.2355 则显示 32.2432.0045 则显示 32

具体实现

针对如上场景,我们可以使用 DecimalFormat 类来格式化数字,将其保留指定位数的小数位

我们可以创建一个测试类:

@GetMapping("/t13")
public String test13(@RequestParam String value){
    // # 表示数字占位符,.## 表示保留至少一位小数,最多两位小数
    DecimalFormat df = new DecimalFormat("#.##");
    String format = df.format(Double.valueOf(value));
    log.info(format);
    return format;
}

示例一

示例二

注:

  • # 占位符表示如果对应位有数字且不为 0 则显示,否则不显示。如果要求小数位必须显示两位,则可以使用 0 占位符,例如 #.00

  • DecimalFormat 类可以处理数字类型的数据,包括 byteshortintlongfloatdoubleBigDecimal 等类型及其包装类。它可以将数字格式化为字符串,或者将字符串解析为数字。

  • 除了数字占位符外,DecimalFormat 还支持其他格式化选项,例如货币符号、千位分隔符、指数符号等

总结

本文记录了 Java 中保留小数位数的实现。