您现在的位置是:首页 > 正文

java~真~四舍五入保留2位小数

2024-01-30 23:53:24阅读 0

计算个人所得税,需要四舍五入保留2位小数

csdn有很多篇文章讲述了四舍五入保留2位小数的多种方法,经过实测,下面这种方法最准确

通过对多个边缘值的测试,均无问题

public class MathUtil {
    private MathUtil() {
    }

    private static String formatDoubleLeafTwo(double d) {
        return String.format("%.2f", d);
    }

    public static void main(String[] args) {
        String v = MathUtil.formatDoubleLeafTwo(1.0);
        String v1 = MathUtil.formatDoubleLeafTwo(1.04);
        String v2 = MathUtil.formatDoubleLeafTwo(1.044);
        String v3 = MathUtil.formatDoubleLeafTwo(1.0445);
        String v4 = MathUtil.formatDoubleLeafTwo(1.045);
        String v5 = MathUtil.formatDoubleLeafTwo(1.0454);
        String v6 = MathUtil.formatDoubleLeafTwo(1.0455);
        System.out.println(v);
        System.out.println(v1);
        System.out.println(v2);
        System.out.println(v3);
        System.out.println(v4);
        System.out.println(v5);
        System.out.println(v6);
    }
}

测试结果

 

1.00
1.04
1.04
1.04
1.05
1.05
1.05

double数据类型就是不支持.00这样的数据结构

但是金融行业又要保留2位小数,所以这样的结果使用String保存

通过学习,得知float和double尤其不适合用于货币计算

使用BigDecimal,int,long来进行货币计算

网站文章

  • 使用BootStrap搭建主页

    使用BootStrap搭建主页

    使用Bootstrap来搭建主页

    2024-01-30 23:53:17
  • 在eclipse中安装Spring Tool Suite(STS)

    在eclipse中安装Spring Tool Suite(STS)

    1.打开eclipse,Help→Eclipse Marketplace 2. 3.全选,点击confirm 4.接受协议 5.等待安装完成,下载完成后会自动弹出一个弹窗,点击确认重启,安装过程比较久 6.安装完成后,在window→preference中查看由spring选项,则安装完成 ...

    2024-01-30 23:53:01
  • js 替换字符串中所有满足条件的字符

    js 替换字符串中所有满足条件的字符

    网上找材料时,趴下来的文件是带其他条件的(我们不需要的),需要替换掉很明显我需要将去掉,用node进行了replace(‘’,‘\r\n’),做了个换行处理,发现跟我想要的不太一样。原来这是常规的replace这时候就需要用到正则了需要注意的是,用正则的话是不要引号的!!!...

    2024-01-30 23:52:54
  • C++模板-29-什么是模板和一个简单的例子

    C++模板-29-什么是模板和一个简单的例子

    这篇开始进入模板的学习,接下来要学习模板,各种函数模板和类模板,然后学习几个标准的类,例如string类的,然后过度到学习各种容器。1.什么是模板模板就是建立通用模具,大大提高代码复用性。2.没有模板...

    2024-01-30 23:52:24
  • 基于redis+lua实现抢红包业务(java实现附代码)

    基于redis+lua实现抢红包业务(java实现附代码)

    抢红包的关键 我认为在抢红包业务里面,主要有以下几个关键问题: 1、多个人同时抢一个红包存在的数据竞争问题(并发问题) 2、判断一个人是否已抢过该红包 (可见性问题) 3、拼手气红包的分配算法 4、红...

    2024-01-30 23:52:17
  • 技术分享 | 关于 MySQL 自增 ID 的事儿

    作者:贲绍华 爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 当我们使用 M...

    2024-01-30 23:52:10
  • Ansible自动化运维之常用模块的ad-hoc应用

    Ansible自动化运维之常用模块的ad-hoc应用

    文章目录1. yum模块2. service模块3. firewalld模块4. copy模块5. uri模块6. file模块7. user模块8. mysql_db模块9. mysql_user模块Ansible中的内置模块非常的多,一般使用ansible-doc来获取模块相关帮助; 可以直接查看doc帮助文档尾部 的example例子 仿照应用ansible默认模块为comma...

    2024-01-30 23:51:42
  • 计算机实现加减乘除 ----- 二进制

    二进制四则运算

    2024-01-30 23:51:35
  • ARM v8 简介

    ARM v8 简介

    ARMv8 Registers General Purpose Registers ARMv8提供了31个64-bit的通用寄存器。分别是X0-X30。 每个64-bit的寄存器低32位又包含32-b...

    2024-01-30 23:51:28
  • CTF相关之代码py报错 from secret import FLAG ImportError: cannot import name ‘FLAG‘ from ‘secret‘

    CTF相关之代码py报错 from secret import FLAG ImportError: cannot import name ‘FLAG‘ from ‘secret‘

    运行python代码时报错: from secret import FLAG ImportError: cannot import name 'FLAG' from 'secret' (D:\python.10\lib\site-packages\secret\__init__.py)

    2024-01-30 23:50:58