java 中使用BigDecimal 解决科学计数法问题
创始人
2024-03-14 01:07:01
0

一 BigDecimal的Api

1.1 常用方法介绍

ROUND_CEILING   向正无穷方向舍入

ROUND_DOWN   向零方向舍入

ROUND_FLOOR   向负无穷方向舍入 

ROUND_HALF_DOWN  向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5 

ROUND_HALF_UP   向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6 

ROUND_HALF_EVEN  向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN

ROUND_UNNECESSARY   计算结果是精确的,不需要舍入模式

ROUND_UP   向远离0的方向舍入

案例

BigDecimal decimal = new BigDecimal("3.16974432");//1.98764432System.out.println(decimal);BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN);System.out.println(setScale);BigDecimal setScale1 = decimal.setScale(4,BigDecimal.ROUND_HALF_UP);System.out.println(setScale1);

 BigDecimal 损失精度、科学计数、去除数字末位0、DecimalFormat等问题(详解)_小情歌i的博客-CSDN博客_bigdecimal科学计数法

二  解决科学计数问题

2.1 案例一

1.代码

     BigDecimal decimal = new BigDecimal("3.16974497273E9");System.out.println(decimal);BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN);System.out.println(setScale);BigDecimal setScale1 = decimal.setScale(4,BigDecimal.ROUND_HALF_UP);System.out.println(setScale1);

2.结果: 

 2.2  decimal的乘法和减法

1.数据库字段设置decimal

 2.实体

 3.运算

1.四舍五入

   public BigDecimal getScienceDecimalVale(BigDecimal resultValue){BigDecimal setScale = resultValue.setScale(2,BigDecimal.ROUND_HALF_UP);logger.info("解决科学计算法:  原来值:"+resultValue+" 保留2位小数:"+setScale);//  String finishResult= resultValue.setScale(2, BigDecimal.ROUND_HALF_UP).toString();//System.out.println("解决科学计算法:"+finishResult);return setScale;}

 2.相减

 3.相乘

 

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...