BigDecimal保留两位小数,或指定精确的位数

public static void main(String[] args) {

        BigDecimal t1 = new BigDecimal("3.15289");
        BigDecimal t2 = new BigDecimal("-3.11289");

        //  新的t1值,并初始化
        BigDecimal newt1 = BigDecimal.ZERO;

        //  新的t2值,并初始化
        BigDecimal newt2 = BigDecimal.ZERO;

        //  精确一位小数 结果为 3.1
        newt1 = newt1.add(t1.setScale(1,RoundingMode.FLOOR));

        //  精确一位小数 结果为 -3.2
        newt2 = newt2.add(t2.setScale(1,RoundingMode.FLOOR));

        System.out.println("newt1:"+newt1);
        System.out.println("newt2"+newt2);
    }

结论:当原始数据为正数时,可采用RoundingMode.FLOOR函数进行要保留的位数,前提是正数的情况下,切记!!!

原文地址:https://www.cnblogs.com/dqcer/p/9197764.html

时间: 2024-08-03 18:41:50

BigDecimal保留两位小数,或指定精确的位数的相关文章

java.math.BigDecimal保留两位小数,保留小数,精确位数

http://blog.csdn.net/yuhua3272004/article/details/3075436 使用java.math.BigDecimal工具类实现 java保留两位小数问题: 方式一(四舍五入形式保留两位小数,注意模式ROUND_HALF_UP): 四舍五入   double   f   =   111231.5585;   BigDecimal   b   =   new   BigDecimal(f);   double   f1   =   b.setScale(2

addmul.wxs(保留两位小数-将手机号中间4位数变成*-处理时间戳)

var filters = { toFix: function (value) { return parseFloat(value).toFixed(2)//此处2为保留两位小数 }, telvague: function(val) { //将手机号中间4位数变成* return val ? (val.substring(0, 3) + '****' + val.substring(7)) : "匿名"; }, formatDate: function (time, isSecond)

BigDecimal四舍五入保留两位小数

import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public class NumberFormatDemo { public static void main(String[] args) { // BigDecimal // 保留两位小数 System.out.println(new BigDecimal(0.2).setScale(2, BigDecimal

BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

转自:https://blog.csdn.net/ochangwen/article/details/51531866 一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal.BigDecimal所创建的是对象,我们不

【开发日志】Long/Bigdecimal/double数据类型保留两位小数

今天开发碰到个需求就是保证回显到页面的数据保留两位小数,实际我们的数据是八位小数 可以明显的看到Bigdecimal是八位,虽说Long类型不用保留两位(强迫症),但是我还是想保留 1.Long类型 String.format("%.2f",参数) .第二个参数是double数据类型,String,int,Long 类型是不行的,float可以 2.Bigdecimal java.text.DecimalFormat df =new java.text.DecimalFormat(&q

java double 保留两位小数

java保留两位小数问题: 方式一: 四舍五入  double   f   =   111231.5585;  BigDecimal   b   =   new   BigDecimal(f);  double   f1   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();  保留两位小数  ---------------------------------------------------------------   方

怎么使float保留两位小数或多位小数*如何将整数 int 转换成字串 String

5.怎么使float保留两位小数或多位小数* 两种方法: import java.math.*; -- 方法1: float f = 34.232323; BigDecimal b = new BigDecimal(f); float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); // b.setScale(2, BigDecimal.ROUND_HALF_UP) 表明四舍五入,保留两位小数 方法2: float scale

【Java】 float保留两位小数

前言:float是浮点数,有时需要做精确的位数处理 正文: 方法1 float f = (float) 34.232323; BigDecimal b = new BigDecimal(f); float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue(); //ROUND_HALF_UP表明四舍五入,ROUND_HALF_DOWN表明五舍六入,2:保留两位小数 方法2 float f = 34.232323; DecimalFor

Double值保留两位小数的四种方法

public class DoubleTest { //保留两位小数第三位如果大于4会进一位(四舍五入) double f = 6.23556; /** *使用精确小数BigDecimal */ public void fun1() { BigDecimal bg = new BigDecimal(f); /** * 参数: newScale - 要返回的 BigDecimal 值的标度. roundingMode - 要应用的舍入模式. 返回: 一个 BigDecimal,其标度为指定值,其非