java实现BigDecimal/int四舍五入

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

BigDecimal四舍五入

public static void round_half_up() {
        System.out.println("四舍五入(保留位后一位是5进位) = " + new BigDecimal("2.35").setScale(1, BigDecimal.ROUND_HALF_UP)); 常用
        System.out.println("四舍五入(保留位后一位是5舍弃) = " + new BigDecimal("2.35").setScale(1, BigDecimal.ROUND_HALF_DOWN));
        System.out.println("四舍五入(保留位是奇数) = " + new BigDecimal("4.55").setScale(1, BigDecimal.ROUND_HALF_EVEN)); 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
        System.out.println("四舍五入(保留位是偶数) = " + new BigDecimal("4.45").setScale(1, BigDecimal.ROUND_HALF_EVEN)); 向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
        System.out.println("            进位    = " + new BigDecimal("2.31").setScale(1, BigDecimal.ROUND_UP));
    }

注意:如果是除的话保留两位小数:
((new BigDecimal(s1).divide(new BigDecimal(s), 4, BigDecimal.ROUND_HALF_UP)).multiply(BigDecimal.valueOf(100))).setScale(2, BigDecimal.ROUND_HALF_UP))

输出结果:

四舍五入(保留位后一位是5进位) = 2.4
四舍五入(保留位后一位是5舍弃) = 2.3
四舍五入(保留位是奇数) = 4.6
四舍五入(保留位是偶数) = 4.4
进位 = 2.4

说明:

ROUND_CEILING
Rounding mode to round towards positive infinity.
向正无穷方向舍入

ROUND_DOWN
Rounding mode to round towards zero.
向零方向舍入

ROUND_FLOOR
Rounding mode to round towards negative infinity.
向负无穷方向舍入

ROUND_HALF_DOWN
Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round down.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5

ROUND_HALF_EVEN
Rounding mode to round towards the “nearest neighbor” unless both neighbors are equidistant, in which case, round towards the even neighbor.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位上的数字是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN

ROUND_HALF_UP
Rounding mode to round towards “nearest neighbor” unless both neighbors are equidistant, in which case round up.
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6

ROUND_UNNECESSARY
Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary.
计算结果是精确的,不需要舍入模式

ROUND_UP
Rounding mode to round away from zero.
向远离0的方向舍入文章来源地址https://www.toymoban.com/news/detail-493696.html

int 四舍五入

/**
* 四舍五入
 */
int roundNum = (int) Math.round(result);
/**
* 向上取整
*/
int ceilNum = (int) Math.ceil(result);
/**
* 向下取整
*/
int floorNum = (int) Math.floor(result);

BigDecimal比较大小

	public static void main(String[] args) {
        BigDecimal a = new BigDecimal(10);
        BigDecimal b = new BigDecimal(5);

        if (a.compareTo(b) == 0)
            System.out.println("a = b");

        if (a.compareTo(b) == -1)
            System.out.println("a < b");

        if (a.compareTo(b) == 1)
            System.out.println("a > b");

        if (a.compareTo(b) != 0)
            System.out.println("a != b");

        if (a.compareTo(b) != -1)
            System.out.println("a >= b");

        if (a.compareTo(b) != 1)
            System.out.println("a <= b");
    }

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

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

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

相关文章

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

    1.Math.round Math.round ()是Java中舍入数字的经典方法,Math.round(变量名称)这种返回的其实是整数,也就是说 四舍五入之后是整数 。   该方法有以下几种语法格式: 示例:  输出结果为: 101 101 100 90  如果要输出百分比(记得乘100): 2.DecimalFormat 对Java中 DecimalFormat 的所有基础用法进

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

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

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

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

    2024年02月08日
    浏览(37)
  • elementui动态表单实现计算属性携带参数,并将计算出的值四舍五入保留两位小数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 写项目的时候,遇到需要在动态表单中,将同一级输入框输入的内容计算出来,并动态显示,发现computer计算属性好像不能带参数,最后查了好多文档才解决,看下面简单案例 vue中computed计算属性无法直

    2024年02月14日
    浏览(39)
  • 四舍五入(c++基础)

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

    2024年02月14日
    浏览(47)
  • 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)
  • 【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)
  • C#中四舍五入的正确写法是什么?

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

    2024年02月13日
    浏览(45)
  • 小程序保留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)
  • 【大坑】MyBatisPlus使用updateById莫名将数据四舍五入了

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

    2024年01月20日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包