Java中数字的有效位数,和小数点后保留的小数位
来源:互联网 发布:java hashmap stream 编辑:程序博客网 时间:2024/05/18 02:23
import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;/** * JAVA中关于数字取几位有效位数,和小数点后保留几位小数的小示例。 * @author SailingZhao * */public class TestBigDecimal {/**保留几位有效数字 * @param oldDouble * @param scale * @return */public static double significand(double oldDouble, int scale) {if (scale < 0) {throw new IllegalArgumentException("scale指定的精度为非负值");}/** * RoundingMode:舍入模式 * UP:远离零方向舍入的舍入模式; * DOWN:向零方向舍入的舍入模式; * CEILING: 向正无限大方向舍入的舍入模式; * FLOOR:向负无限大方向舍入的舍入模式; * HALF_DOWN:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入; * HALF_UP:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入; * HALF_EVEN:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入;(在重复进行一系列计算时,此舍入模式可以将累加错误减到最小) * UNNECESSARY:用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入。 */RoundingMode rMode =null;//rMode=RoundingMode.FLOOR;//下面这种情况,其实和FLOOR一样的。if(oldDouble>0){rMode=RoundingMode.DOWN;}else{rMode=RoundingMode.UP;}//此处的scale表示的是,几位有效位数BigDecimal b = new BigDecimal(Double.toString(oldDouble),new MathContext(scale,rMode));return b.doubleValue();}/**小数点之后保留几位小数(此处,我们用BigDecimal提供的(除以div)方法实现) * @param oldDouble * @param scale * @return */public static double decimal(double oldDouble, int scale) {if (scale < 0) {throw new IllegalArgumentException("The scale must be a positive integer or zero");}BigDecimal b = new BigDecimal(Double.toString(oldDouble));BigDecimal one = new BigDecimal("1");//return b.divide(one, scale, BigDecimal.ROUND_FLOOR).doubleValue();if(oldDouble>0){//此处的scale表示的是,小数点之后的精度。return b.divide(one, scale, BigDecimal.ROUND_DOWN).doubleValue();}else{return b.divide(one, scale, BigDecimal.ROUND_UP).doubleValue();}}public static void main(String[] args) {double d = 1.545;int scale = 2;double d1 = significand(d,scale);double d2 = decimal(d,scale);System.out.println(d+"保留"+scale+"位有效数字:"+d1);System.out.println(d+"保留小数点之后"+scale+"位小数:"+d2);}}
0 0
- Java中数字的有效位数,和小数点后保留的小数位
- javascript保留数字有效数字和小数点后数字位数的方法(数字类型转换成字符串类型)
- Java保留小数点后*位数的方法
- Java保留小数点后*位数的方法
- Java保留小数点后数字位数
- R中控制输出数值的小数点位数round,和有效数字位数signif
- c#保留小数点后位数的方法
- c#保留小数点后位数的方法
- c#保留小数点后位数的方法
- Js 和 PHP 中保留小数点后X位数的方法 toFixed、round、number_format、sprintf
- C++中保留小数点位数的方法
- java 代码实现保留小数点的位数
- java保留小数点的位数方法
- 小数点后保留几位有效数字
- 小数点和有效位数的问题
- java中double类型数组保留小数点后位数问题!!!!!
- Java保留小数点后N位数
- 将计算结果保留小数点后指定的位数
- 创建版本库
- codeforces 735 D. Taxes (数学)
- C++进程通信之邮槽
- SQL基本语法-表
- 指令的交互
- Java中数字的有效位数,和小数点后保留的小数位
- leaflet加载百度地图(矫正篇)
- 学习卡尔曼滤波推导笔记系列(1)
- FlywayException:Validate failed:Migration checksum mismatch
- HTML标记语言学习之二
- 上传本地文件到hdfs
- 关于Java的File.separator
- Java IO基本模型
- MVC与MVVM