JAVA把结果保留两位小数的3种方法举例

 更新时间:2024年08月21日 10:38:37   作者:非非从零学IT  
在写程序的时候,有时候可能需要设置小数的位数,所以下面这篇文章主要给大家介绍了关于JAVA把结果保留两位小数的3种方法,文章通过代码介绍的非常详细,需要的朋友可以参考下

在Java中,保留两位小数可以使用几种不同的方法,下面将详细解释并给出每种方法的例子:

1.使用DecimalFormat类

DecimalFormatjava.text包中的一个类,专门用于格式化数字,包括保留小数点后指定的位数。下面是使用DecimalFormat来保留两位小数的示例:

import java.text.DecimalFormat;

public class Main {
    public static void main(String[] args) {
        // 原始数值
        double value = 123.456789;

        // 创建DecimalFormat对象,并设置格式为保留两位小数
        DecimalFormat df = new DecimalFormat("#.##");

        // 格式化数字
        String formattedValue = df.format(value);

        // 输出结果
        System.out.println(formattedValue);  // 输出:123.46
    }
}

在此例中,#.##是一个模式字符串,其中#代表任意数字,.代表小数点,因此#.##意味着至少显示一位数字,最多显示两位小数,多余的数字将被四舍五入。

2.使用String.format()方法

Java的String类有一个静态方法format(),可以按照指定的格式模板格式化数据。以下是如何使用它来保留两位小数:

public class Main {
    public static void main(String[] args) {
        // 原始数值
        double value = 123.456789;

        // 使用String.format()格式化数字,"%f"表示浮点数格式,".2f"指明保留两位小数
        String formattedValue = String.format("%.2f", value);

        // 输出结果
        System.out.println(formattedValue);  // 输出:123.46
    }
}

这里的%.2f是一个格式说明符,其中.前面的%标志着这是一个转换说明符,f表示浮点数,而.2指定了小数点后的位数。

3.使用BigDecimal类

java.math.BigDecimal是Java中用于高精度算术运算的类,它可以精确控制浮点数的精度。下面是如何使用setScale()方法保留两位小数:

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        // 原始数值
        double value = 123.456789;

        // 将double类型转换为BigDecimal,以避免浮点数精度问题
        BigDecimal bd = new BigDecimal(Double.toString(value));

        // 设置小数点后保留两位,并进行四舍五入
        BigDecimal roundedValue = bd.setScale(2, BigDecimal.ROUND_HALF_UP);

        // 将结果转换为字符串输出
        String formattedValue = roundedValue.toPlainString();

        // 输出结果
        System.out.println(formattedValue);  // 输出:123.46
    }
}

在上述示例中,setScale(2, BigDecimal.ROUND_HALF_UP)方法设置了小数点后保留两位,并指定了四舍五入的方式为ROUND_HALF_UP(这是最常见的舍入模式,即大于等于0.5向上舍入,小于0.5向下舍入)。toPlainString()方法将结果转换成没有指数记法的普通字符串形式。使用BigDecimal处理浮点数时,能保证结果的精确性,不受原始float或double类型精度限制的影响。

总结

到此这篇关于JAVA把结果保留两位小数的3种方法的文章就介绍到这了,更多相关JAVA结果保留两位小数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot基于maven打包分离lib及resource

    Springboot基于maven打包分离lib及resource

    这篇文章主要介绍了Springboot基于maven打包分离lib及resource,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • springcloud项目改名的操作方法

    springcloud项目改名的操作方法

    这篇文章主要介绍了springcloud项目改名的操作方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • spring AMQP代码生成rabbitmq的exchange and queue教程

    spring AMQP代码生成rabbitmq的exchange and queue教程

    使用Spring AMQP代码直接创建RabbitMQ exchange和queue,并确保绑定关系自动成立,简化消息队列配置,此经验分享供参考,欢迎支持脚本之家
    2025-08-08
  • springboot项目配置多数据库连接的示例详解

    springboot项目配置多数据库连接的示例详解

    这篇文章主要介绍了springboot项目配置多数据库连接的示例,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • 一文搞懂Java中的反射机制

    一文搞懂Java中的反射机制

    这篇文章主要介绍了Java中反射机制的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • IDEA2020.2.3中创建JavaWeb工程的完整步骤记录

    IDEA2020.2.3中创建JavaWeb工程的完整步骤记录

    这篇文章主要给大家介绍了关于IDEA2020.2.3中创建JavaWeb工程的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • MyBatis 多表查询三种最常见的写法

    MyBatis 多表查询三种最常见的写法

    这篇文章主要介绍了MyBatis 多表查询三种最常见的写法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-04-04
  • SpringBoot整合SQLite数据库全过程

    SpringBoot整合SQLite数据库全过程

    sqlite是一个很轻量级的数据库,可以满足日常sql的需求,下面这篇文章主要给大家介绍了关于SpringBoot整合SQLite数据库的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 由浅入深快速掌握Java 数组的使用

    由浅入深快速掌握Java 数组的使用

    Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 Java 语言中提供的数组是用来存储固定大小的同类型元素
    2022-04-04
  • Java咖啡馆(1)——叹咖啡

    Java咖啡馆(1)——叹咖啡

    这篇文章主要给大家介绍了关于Java咖啡馆之叹咖啡,需要的朋友可以参考下
    2006-12-12

最新评论