JAVA经BigDecimal圆角的解决方案及注意事项

JAVA经BigDecimal圆角的解决方案及注意事项

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

 /**
     * @Description: 四舍五入住宿2小数位数
     * @param valueName
     * @return
     */
    public static Double formateDouble45(Double d){
        if(d == null){
            return 0d;
        }
        BigDecimal   b   =   new   BigDecimal(d);
        double   f   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();
        return f;
    }


上面是曾经我写的一个四舍五入保留2位小数的方法。近期发现是有问题的

比如:2.555 得到是2.55 而不是预想的2.56

改进例如以下:

<pre name="code" class="java">    /**
	 * @Description: 四舍五入留2位小数
	 * @param valueName
	 * @return
	 */
	public static Double formateDouble45(Object d){
		if(d == null){
			return 0d;
		}
		BigDecimal   b   =   new   BigDecimal(d.toString());
		double   f   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();
		return f;
	}

通过測试发现假设构建BugDecimal的时候使用String类型的话。我们可以实现所有正常的四舍五入.

不知什么原因详细信息.


版权声明:本文博主原创文章。博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116901.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月13日 下午5:00
下一篇 2022年1月13日 下午6:00


相关推荐

  • 什么是软连接,软连接的作用[通俗易懂]

    什么是软连接,软连接的作用[通俗易懂]什么是软连接,其实就是别名,简单的理解就是相当于windows的快捷方式。ln-s/opt/dir/tmp/ddd命令行格式如下:ln-s源目录目标软连接进入软连接cd/opt/dir实际上ddd这个软连接就相当于/opt/dir了…

    2026年4月19日
    5
  • vue ajax 上传,vue中用ajax上传文件

    vue ajax 上传,vue中用ajax上传文件直接上代码 uploadCompan function event this file event target files letformdata newFormData formdata append file this file 0 formdata append submit false ajax url api url Excel import

    2026年3月18日
    2
  • Redis的相关问题总结

    Redis的相关问题总结

    2021年11月7日
    44
  • centos7 查看端口占用_如何查看端口是否被占用

    centos7 查看端口占用_如何查看端口是否被占用 netstat-nap#会列出所有正在使用的端口及关联的进程/应用netstat-lnp|grep5000这条语句的作用是查询占用5000端口的应用和进程,把5000端口替换成你要过滤的端口就可以可以看到占用5000端口的进程的基本信息如果要杀掉占用端口的进程执行以下命令即可:kill-928533可以看到进程已被杀死 …

    2022年7月27日
    19
  • mybatis插件运行原理_maven 插件

    mybatis插件运行原理_maven 插件最近在做新项目,基于若依(前后端分离版本)做的,他也使用了常用的分页插件PageHelper。老规矩,今天文章还是分三步走,先上文章导读,然后讲原理,最后讲解源码案例。最后达到的效果就是希望读者朋友们在看完我写的这篇文章后,能够秒懂别人写的MyBatis插件并且能够开发出自己的MyBatis的插件。文章导读MyBatis插件原理与实战什么是插件?插件就是在具体的执行流程插一脚(触发点、拦截器)来实现具体的功能。一般插件会对执行流程中的上下文有依赖,抽象的说,我们也可以把MyBatis看作是J

    2026年4月16日
    4
  • getMessage(),getFile,getLine获取异常用法

    getMessage(),getFile,getLine获取异常用法

    2021年11月8日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号