在java的学习中,往往算法有一个是属于java的小数点位数保留。一般有四种方式。

java中保留小数示例:/**

* 1.BigDecimal常用于金额的计算,

* 超过16位使用

*/

public void m1() {

BigDecimal bg = new BigDecimal(f);

double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(f1);

}

/**

* 2.DecimalFormat转换最简便

* 用于格式化十进制数字

* 常用

*/

public void m2() {

DecimalFormat df = new DecimalFormat("#.00");

System.out.println(df.format(f));

}

/**

* 3.String.format打印最简便

* 常用

*/

public void m3() {

System.out.println(String.format("%.2f", f));

}

/**

* 4.NumberFormat

* 是所有数值格式的抽象基类。

*/

public void m4() {

NumberFormat nf = NumberFormat.getNumberInstance();

nf.setMaximumFractionDigits(2);

System.out.println(nf.format(f));

}

public static void main(String[] args) {

java_01 f = new java_01();

f.m1();

f.m2();

f.m3();

f.m4();

}输出结果:自动四舍五入:

123456.79

123456.79

123456.79

123,456.79

java保留小数的四种方法介绍:

1、BigDecimal

常用于金额的计算,超过16位使用

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。

虽然双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。

BigDecimal所创建的是对象,但是不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。

2、DecimalFormat

它是 NumberFormat 的一个具体子类,用于格式化十进制数字。可以帮你用最快的速度将数字格式化为你需要的样子。

3、String.format

打印最简便。

String.format 作为字符串格式化,简单调用 String.format(“Hello %s”, “John”);

String.format返回的是String类型的字符串。

4、NumberFormat

NumberFormat 是所有数值格式的抽象基类。 该类提供了格式化和分析数值的接口。

以上四种方式,常用的是2,3。

更多java知识请关注java基础教程。

java中怎么保留小数_java怎么保留小数相关推荐

  1. java 保留一位小数_java如何保留一位小数

    2016-09-01 00:57齐晓强 客户经理 JAVA中如何对double或者float的浮点数进行精度计算, 在JAVA中提供了多种参数来实现精度的不同控制方式. 具体例子如下: package ...

  2. java中无法推断类型参数_Java 10中的本地类型推断,或者如果它像鸭子一样嘎嘎叫...

    java中无法推断类型参数 最近,Oracle采用了一种新策略,即每六个月发布一次新的语言版本. 该策略假定只有每个第3版都将提供长期支持或LTS. 快速说明: 具有LTS的当前版本是Java 8: ...

  3. java中接口私有反方_Java 8:在接口中声明私有和受保护的方法

    java中接口私有反方 引入Java 8时,我们可以在接口中使用默认方法. 此功能的主要驱动程序是允许接口扩展,同时保留对旧接口版本的向后兼容性. 一个示例是在现有Collection类中引入stre ...

  4. java中缓冲区和缓存_Java中的Google协议缓冲区

    java中缓冲区和缓存 总览 协议缓冲区是一种用于结构化数据的开源编码机制. 它是由Google开发的,旨在实现语言/平台中立且可扩展. 在本文中,我的目的是介绍Java平台上下文中协议缓冲区的基本用 ...

  5. java中的mod运算_Java源码中Integer类位运算分析

    在这里对源码中Integer的部分位运算方法做一个分析解读.同理,可以比较一下其他Number的子类,对位运算部分的设计和性能有一个理解. 在java中,Integer是int类型的包装类型,占4个字 ...

  6. java中调用数组参数_java中如何调用带有数组类型参数的存储过程

    java中如何调用带有数组类型参数的存储过程 关注:95  答案:3  mip版 解决时间 2021-01-28 00:39 提问者万丈深渊 2021-01-27 14:00 不知道java中java ...

  7. java中的垃圾收集器_Java中的垃圾收集

    java中的垃圾收集器 Garbage collection in java is one of the advance topic. Java GC knowledge helps us in fi ...

  8. java中是什么意思_java中什么意思?

    java中>>什么意思? 在java中,>>是一个"有符号"右移位运算符:它会将运算符左边的运算对象向右移动运算符右侧指定的位数.>>运算符使用 ...

  9. java中break什么意思_Java中break的第三种用法说明

    在Java中,break语句有三种用法,第一种是用于终止switch语句中的语句序列,第二种是用于退出循环,然而第三种是用作goto语句的"文明"形式! 我们知道,goto语句会破 ...

  10. java中集合怎么定义_Java集合系列(一):集合的定义及分类

    1. 集合的定义 什么是集合呢? 定义:集合是一个存放对象的引用的容器. 在Java中,集合位于java.util包下. 2. 集合和数组的区别(面试常问) 提到容器,就会想起数组,那么集合和数组的区 ...

最新文章

  1. 对于技术 方法 生活等问题的思考
  2. Oralce 目录结构
  3. 选择排序和Java实现、C++ vector 模板类实现
  4. angr学习笔记(10)(hook)
  5. 云服务器端口对外开放详解
  6. VTK:图片之ImageOpenClose3D
  7. linux中怎样建立批量用户,Linux 大批量建立用户
  8. c 富文本html编辑器,富文本HTML编辑器UEditor
  9. SQL Server如何链接到 Oracle并查询其中的数据?并实现做接口
  10. matlab2c使用c++实现matlab函数系列教程-find函数
  11. 局域网中的通信协议及选择简述。
  12. [Windows] 【直播放映馆V9.0】Bilibili,斗鱼,虎牙,企鹅电竞,音乐电台,无广告看电影直播!...
  13. 宏碁台式计算机u盘启动,Acer宏碁台式电脑怎么通过bios设置u盘启动
  14. map 转换成vo_JAVAMap转换为Bean或VO
  15. html纵向广告滚动,jquery广告滚动 jquery 实现文字左右滚动
  16. #01 Linear Regression Excise
  17. 关于 js 闭包的理解
  18. 本地无需安装数据库,实现plsql远程连接数据库
  19. Java实现蓝桥杯勇者斗恶龙
  20. js实现天降字母打字小游戏

热门文章

  1. python做情感分析【中、英文都有】
  2. wmctf2022 两题PvsZ
  3. nuc8i7beh黑苹果_Intel NUC8i7BEH 黑苹果Hackintosh EFI引导
  4. CSS超链接标记大全
  5. html生日快乐源代码
  6. 《2021年IT行业项目管理调查报告》发布
  7. Qt QString转QDateTime fromString() QDateTime显示invalid 计算两个日期时间差
  8. 迷宫小游戏c语言代码,C语言编写的迷宫小游戏-源代码
  9. linux cat 压缩文件,Linux cat和zcat命令可能比你意识到的更有用
  10. 硬盘有摩擦声音_有摩擦的建筑物