首页 > 基础资料 博客日记
【JAVA】把结果保留两位小数的方法
2024-09-24 09:00:07基础资料围观385次
Java资料网推荐【JAVA】把结果保留两位小数的方法这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣
在Java中,保留两位小数可以使用几种不同的方法,下面将详细解释并给出每种方法的例子:
1.使用DecimalFormat
类
DecimalFormat
是java.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类型精度限制的影响。
文章来源:https://blog.csdn.net/wangyufei0815/article/details/139459245
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?