我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何进行Java Float保留小数位精度的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行Java Float保留小数位精度的实现

如何进行Java Float保留小数位精度的实现,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Float 保留小数位精度

DecimalFormat decimalFormat=new DecimalFormat(".00");return Float.valueOf(super.getDecimalFormat().format(new BigDecimal(handleTime)));

Float 浮点型数据保留两位小数

用过两种方法:DecimalFormat和Math.round()。

用法:

1、DecimalFormat

String java.text.NumberFormat.format(double number)方法

float f = 0.5555f;DecimalFormat df1 = new DecimalFormat("#.00");//保留两位小数,如果是零点几,则小数点前的0不显示,小数点后几个零就保留几位df1.format(f);#表示该位如果是0则不必显示出来,0则表示该位如果是0仍然显示;

函数的定义是:;

所以,传参是double,也可以传float(隐式转换),最后的结果是String类型。

2、Math.round():

int java.lang.Math.round(float a)方法

float f = 1.222f;f = Math.round(f * 100) / 100f;//乘以100,然后除以100转换为浮点类型

两种方法都会四舍五入。

如果是浮点类型建议用Math.round方法,也可以根据自己需求diy代码。

详细讲解请看代码注释和控制台输出:(包含decimalFloat的格式、Math.round函数的实现逻辑)

package testMap; import java.text.DecimalFormat; public class TestFloat { public static void main(String[] args) {// TODO Auto-generated method stub//四舍五入保留两位float f = 0.5555f;//decimalFormat是将double类型数据转换为字符串,并进行格式化//#表示这位如果是0则不必显示出来,0则表示这位如果是//format函数:String java.text.NumberFormat.format(double number)DecimalFormat df1 = new DecimalFormat("#.00");//首位0不显示出来,即0.1显示为  .1DecimalFormat df2 = new DecimalFormat("0.00");//首位0显示出来,即0.1显示为 0.1System.out.println("--------DecimalFormat----------");System.out.println("df1==" + df1.format(f));System.out.println("df2==" + df2.format(f)); System.out.println(df1.format(f).getClass());//String类型System.out.println(Float.parseFloat(df1.format(f)));//转换为float类型System.out.println(String.valueOf(df1.format(f)));//System.out.println(Float.toString(df1.format(f)));//转换为String类型f = 0.595f;//Math.round()方法是将浮点类型数据 乘以10的多少次方 ,取整,然后 + 0.5 除以10的多少次方,取小数点后多少位//如乘以1000 则取小数点后3位System.out.println("---------Math.round()----------");System.out.println(Math.round(f * 100) / 100f);//四舍五入后如果末尾是0,自动省略,不显示//System.out.println(df1.format("1.2"));//参数必须是数值型String java.text.NumberFormat.format(double number)System.out.println(Float.toString(f));//转换为String输出效果System.out.println(Float.toString(f));//转换为String输出效果System.out.println("-----------Math.round()的正数非特殊值实现逻辑--------------");f = 11.115111f;int b = (int) (f * 100 + 0.5);float a = b / 100f;System.out.println("a==" + a);System.out.println((int)(f * 100 + 0.5) / 100f);f = -12.115f;System.out.println("负数" + Math.round(f * 100) / 100f);f = -12.116f;System.out.println("负数" + Math.round(f * 100) / 100f);System.out.println("-------Math.round()的负数非特殊值实现逻辑--------");int c = (int) (f * 100 - 0.5);float d = c / 100f;System.out.println("d==" + d);System.out.println((int)(d * 100 - 0.5) / 100f);} }

控制台输出:

截图如下:

如何进行Java Float保留小数位精度的实现

----下面的是控制台输出-----(和上面一样的,怕图片丢失)

--------DecimalFormat----------
df1==.56
df2==0.56
class java.lang.String
0.56
.56
---------Math.round()----------
0.6
0.595
0.595
-----------Math.round()的正数非特殊值实现逻辑--------------
a==11.12
11.12
负数-12.11
负数-12.12
-------Math.round()的负数非特殊值实现逻辑--------
d==-12.12
-12.12

顺便贴上NumberFormat.formart()的代码:

    public final String format(double number) {        // Use fast-path for double result if that works        String result = fastFormat(number);        if (result != null)            return result;         return format(number, new StringBuffer(),                      DontCareFieldPosition.INSTANCE).toString();    }

关于如何进行Java Float保留小数位精度的实现问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何进行Java Float保留小数位精度的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何进行Java Float保留小数位精度的实现

如何进行Java Float保留小数位精度的实现,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Float 保留小数位精度DecimalFormat decimalForma
2023-06-25

java中如何使float类型数据保留两位小数

方法1:用Math.round计算,这里返回的数字格式的float price=89.89;int itemNum=3;float totalPrice=price*itemNum;float num=(float)(Math.round(totalPrice
java中如何使float类型数据保留两位小数
2018-02-14

Java保留两位小数的实现方法

Java保留两位小数的实现方法采用四舍五入的方式 : 该方式来自网络import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFor
2023-05-31

php如何实现相除保留两位小数

这篇文章主要为大家展示了“php如何实现相除保留两位小数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php如何实现相除保留两位小数”这篇文章吧。php实现相除保留两位小数的方法:1、利用“/”
2023-06-29

Java数据结构中如何进行并查集的实现

这篇文章跟大家分析一下“Java数据结构中如何进行并查集的实现”。内容详细易懂,对“Java数据结构中如何进行并查集的实现”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Java数
2023-06-28

如何进行Java 数据结构中二叉树前中后序遍历非递归的具体实现

本篇文章为大家展示了如何进行Java 数据结构中二叉树前中后序遍历非递归的具体实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、前序遍历1.题目描述给你二叉树的根节点 root ,返回它节点值的
2023-06-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录