java四舍五入常用的2种方法

这篇具有很好参考价值的文章主要介绍了java四舍五入常用的2种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Math.round

Math.round ()是Java中舍入数字的经典方法,Math.round(变量名称)这种返回的其实是整数,也就是说四舍五入之后是整数 

该方法有以下几种语法格式:

long round (double d)
int round (float f)

示例:

public class Test{
public static void main (string args[]){
double d = 100.675;
double e = 100.500;
float f = 100;
float g = 90f;
System.out.println(Math.round(d)) ;
System.out.println(Math.round(e));
System.out.println(Math.round(f));
System.out.println(Math.round(g));
}
}

 输出结果为:

101
101
100
90

 如果要输出百分比(记得乘100):

double p1 = (num_1 * 1.0) / total;
System.out.println(Math.round(p1 * 100) + "%");

2.DecimalFormat

对Java中 DecimalFormat 的所有基础用法进行了一个汇总。

DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。返回值为String类型

小数部分 #代表最多有几位,0代表必须有且只能有几位
.00 表示最终结果得有两位小数,没有,我给你加上;多了,就四舍五入第三个小数
.## 标示最终结果最多有两位小数 一位或者没有都可以 多了同样四舍五入第三位
整数部分 0 和 #
当整数部分为0时 比如 0.1 #此时认为整数部分不存在,所以不写
0 认为没有至少也得一位,写上0
这跟上面第一部分的表现是一致的:# 有就写,没有就不写 ;0 必须有 没有补0
整数部分有多位时: 2 20 200
由上面的结果可以看出 0和#对整数部分多位时的处理是一致的 就是有几位写多少位
这跟上面两部分的表现是不一致的 在有多位时,0和#都没有匹配位数,而是有多少写多少。

参考用法: 

        double pi = 3.1415927;//圆周率
		//取一位整数
		System.out.println(new DecimalFormat("0").format(pi));//3
		//取一位整数和两位小数
		System.out.println(new DecimalFormat("0.00").format(pi));//3.14
		//取两位整数和三位小数,整数不足部分以0填补。
		System.out.println(new DecimalFormat("00.000").format(pi));//03.142
		//取所有整数部分
		System.out.println(new DecimalFormat("#").format(pi));//3
		//以百分比方式计数,并取两位小数
		System.out.println(new DecimalFormat("#.##%").format(pi));//314.6%
		long c = 299792458;//光速
		//显示为科学计数法,并取五位小数
		System.out.println(new DecimalFormat("#.#####E0").format(c));//2.99792E8
		//显示为两位整数的科学计数法,并取四位小数
		System.out.println(new DecimalFormat("00.####E0").format(c));//29.9792E7
		//每三位以逗号进行分隔。
		System.out.println(new DecimalFormat(",###").format(c));//299,792,458
		//将格式嵌入文本
		System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c));//光速大小为每秒299,792,458米。

注意:计算百分数的时候最好传入double类型,而且不需要事先*100文章来源地址https://www.toymoban.com/news/detail-559467.html

int a=2;
int b=3;
System.out.println(new DecimalFormat("#%").format(a/b));//0%
System.out.println(new DecimalFormat("#%").format((a*1.0)/b));//67%
System.out.println(new DecimalFormat("#%").format((a*100.0)/b));//6667%

到了这里,关于java四舍五入常用的2种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 四舍五入(c++基础)

    题目描述: 给定一个实数x,求保留y位小数的结果。(x=1000,y=5,y为整数) 输入格式: 一行,两个数,以一个空格分开。 输出格式: 一个实数。 样例输入: 样例输出: 提示:  方法一(推荐): 使用c语言中printf语句。 printf(\\\"%0.*lf\\\",y,x) 表示输出x时保留y位小数(*会用后面的y替代)

    2024年02月14日
    浏览(47)
  • PHP 四舍五入实现方法

    1. PHP 实现四舍五入的函数为 round() ,语法格式如下: 返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。 四舍五入数字到两位小数、设置负数: 除了使用 round() 方法外,我们还可以使用 sprintf() 方法来

    2024年02月12日
    浏览(53)
  • 【Python中四舍五入round()方法】

    选择题 以下python代码分别输出什么? x=2.34677432 print(round(x)) print(round(x,3)) A: 2   2.34 B: 3   3.467 C: 2   2.347 D: 7   7.040   欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交

    2023年04月08日
    浏览(32)
  • python知识点100篇系列(11)-浮点数四舍五入的两种方法

    Python 的四舍五入主要有两种方式; 内置函数 round(number[, ndigits]) 使用 Decimal 先说结论: 如果是对金额的四舍五入,不建议使用内置函数,原因如下: 使用round方法: python3中的round函数对浮点数进行四舍五入的规则: 参数ndigits 不为 0 的情况 如果保留位数的后一位小于等于

    2024年02月07日
    浏览(38)
  • Python实现真正的四舍五入

    Python 内置的函数 round() 能够大致实现四舍五入的功能,但会存在部分场景不适用,比如: 网上搜了一圈,只找到了 Decimal 的替代解决方法,但看了貌似比较复杂,经过思考一番,只有遇到尾数为 5 的情况下,才会计算有偏差,那直接把 5 加 1 变成 6,不就可以轻松解决了

    2024年02月11日
    浏览(49)
  • C# 四舍五入 MidpointRounding.AwayFromZero

    四舍五入 在计算中 经常使用到,但是如果使用 Math.Round,只是五舍六入 在Math.Round内传入MidpointRounding.AwayFromZero枚举,就可以实现四舍五入的效果了, C#文档 https://docs.microsoft.com/zh-cn/dotnet/api/system.midpointrounding?view=net-6.0#system-midpointrounding-awayfromzero

    2024年02月13日
    浏览(49)
  • 小程序保留2位小数据,不四舍五入

    目录  方法1: parseInt + toFixed 方法2:Math.floor + tofixed ### 方法3:parseFloat() ,较为准确==》    方法1: parseInt + toFixed 输出 : 58766.99999999999 587.66 -0.11 -1.00 -12.99 -12.99  有问题:  587.67 转换之后 587.66  方法2:Math.floor + tofixed 输出: -0.12 -1.00 -13.00 -13.00   有问题-12.99 得出

    2024年02月13日
    浏览(35)
  • C#中四舍五入的正确写法是什么?

    概述:就在今天,测试提一个BUG,是什么呢?就是在计算商品采购价时,需要保留2位小数,当时是使用【Math.Round(采购价,2)】这种方法进行四舍五入的,但是这样写会有问题,至于什么问题呢,来看看这篇文章就对了! 四舍五入是一种精确度的计数保留法。在取小数近似数的

    2024年02月13日
    浏览(46)
  • Verilog FPGA实现除法——整除与四舍五入

    Verilog FPGA实现除法——整除与四舍五入 在FPGA开发中,实现除法计算是非常必要的。本文将介绍如何使用Verilog语言实现除法计算,包括整除和四舍五入两种情况。 整除实现 在Verilog中,整除的实现可以通过比较被除数是否大于等于除数来进行。具体步骤如下: 将除数与被除数

    2024年02月08日
    浏览(37)
  • 【大坑】MyBatisPlus使用updateById莫名将数据四舍五入了

    我目前在为本地的一所高中开发一个成绩分析的网站,后端使用的是SpringBoot+MyBatisPlus,业务逻辑是用户在前端上传EXCEL文件,后端从文件中读取成绩存到数据库用于分析。但是奇怪的是:在后端, 进入数据库之前的成绩数据是64.5,到数据库之后就变成了65.0 。 代码如下: 从

    2024年01月20日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包