当前位置: 首页>>代码示例>>Java>>正文


Java BigDecimal.doubleValue方法代码示例

本文整理汇总了Java中java.math.BigDecimal.doubleValue方法的典型用法代码示例。如果您正苦于以下问题:Java BigDecimal.doubleValue方法的具体用法?Java BigDecimal.doubleValue怎么用?Java BigDecimal.doubleValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.math.BigDecimal的用法示例。


在下文中一共展示了BigDecimal.doubleValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: parseObject

import java.math.BigDecimal; //导入方法依赖的package包/类
@Override
public Number parseObject(String source, ParsePosition pos) {
    Number number = NumberFormat.getInstance().parse(source, pos);
    if (number == null) {
        return null;
    }
    String unit = source.substring(pos.getIndex()).trim();
    Integer exponent = null;
    if (!unit.isEmpty()) {
        String prefix = unit.substring(0, 1);
        exponent = PREFIX_MAP.get(prefix);
    }
    if (exponent != null && Double.isFinite(number.doubleValue())) {
        BigDecimal bd = new BigDecimal(number.toString());
        bd = bd.movePointRight(exponent.intValue());
        if (bd.remainder(BigDecimal.ONE).equals(BigDecimal.ZERO) &&
                bd.abs().compareTo(new BigDecimal(Long.MAX_VALUE)) < 0) {
            return bd.longValue();
        }
        return bd.doubleValue();
    }
    return number;
}
 
开发者ID:lttng,项目名称:lttng-scope,代码行数:24,代码来源:DecimalUnitFormat.java

示例2: calcCenterOfGravity

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * One dimensional: let coordinates x be with values v. center of gravity: cog = sum(x_i * v_i) / sum(v_i). If all
 * values v_i are 0 then undefined. We can do this cog calculation for each dimension separately and combine the
 * answers.
 *
 * @param picture
 *          in gray scale values. points are weighed in accordance with their gray scale. So double the gray scale
 *          means double weight. But beware: value 255=white, 0=black, so 255-value is in fact the weight of a pixel
 * @return center of gravity (x,y), (undefined if picture is all white)
 */
public static double[] calcCenterOfGravity(int[][] picture) {
	MathContext mc = MathContext.DECIMAL32;
	BigDecimal zero = new BigDecimal(0, mc);
	BigDecimal summedGrayScaleValues = zero;
	BigDecimal summedRowGrayScaleValues = zero;
	BigDecimal summedColumnGrayScaleValues = zero;
	for (int rowIndex = 0; rowIndex < picture.length; rowIndex++) {
		int[] row = picture[rowIndex];
		for (int columnIndex = 0; columnIndex < row.length; columnIndex++) {
			int grayScaleWeight = 255 - row[columnIndex];
			if (grayScaleWeight > 0) {
				summedRowGrayScaleValues = summedRowGrayScaleValues.add(BigDecimal.valueOf(grayScaleWeight * rowIndex), mc);
				summedColumnGrayScaleValues = summedColumnGrayScaleValues.add(BigDecimal.valueOf(grayScaleWeight * columnIndex), mc);
				summedGrayScaleValues = summedGrayScaleValues.add(BigDecimal.valueOf(grayScaleWeight), mc);
			}
		}
	}
	BigDecimal rowAverage = summedGrayScaleValues.longValue() > 0 ? summedRowGrayScaleValues.divide(summedGrayScaleValues, mc) : zero;
	BigDecimal columnAverage = summedGrayScaleValues.longValue() > 0 ? summedColumnGrayScaleValues.divide(summedGrayScaleValues, mc) : zero;
	double[] center = new double[] { rowAverage.doubleValue(), columnAverage.doubleValue() };
	return center;
}
 
开发者ID:braeunlich,项目名称:anagnostes,代码行数:33,代码来源:Normalizer.java

示例3: toDouble

import java.math.BigDecimal; //导入方法依赖的package包/类
public static double toDouble(Object a) {

        double value;

        if (a instanceof java.lang.Double) {
            return ((Double) a).doubleValue();
        } else if (a instanceof BigDecimal) {
            BigDecimal bd = (BigDecimal) a;

            value = bd.doubleValue();

            int        signum = bd.signum();
            BigDecimal bdd    = new BigDecimal(value + signum);

            if (bdd.compareTo(bd) != signum) {
                throw Error.error(ErrorCode.X_22003);
            }
        } else if (a instanceof Number) {
            value = ((Number) a).doubleValue();
        } else {
            throw Error.error(ErrorCode.X_22501);
        }

        return value;
    }
 
开发者ID:s-store,项目名称:sstore-soft,代码行数:26,代码来源:NumberType.java

示例4: divide

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * 提供(相对)精确的除法运算。 当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入。
 * 
 * @param num1 被除数
 * @param num2 除数
 * @param scale 表示表示需要精确到小数点以后几位。
 * @return 两个参数的商
 */
public static final Double divide(Object num1, Object num2, Integer scale) {
	if (scale == null) {
		scale = DEF_SCALE;
	}
	num2 = num2 == null || Math.abs(new Double(num2.toString())) == 0 ? 1 : num2;
	if (scale < 0) {
		throw new IllegalArgumentException("The scale must be a positive integer or zero");
	}
	BigDecimal result = bigDecimal(num1).divide(bigDecimal(num2), scale, BigDecimal.ROUND_HALF_UP);
	return result.doubleValue();
}
 
开发者ID:babymm,项目名称:mumu,代码行数:20,代码来源:MathUtil.java

示例5: round

import java.math.BigDecimal; //导入方法依赖的package包/类
public static double round(double value, int places) {
	if (places < 0) throw new IllegalArgumentException();

	BigDecimal bd = new BigDecimal(value);
	bd = bd.setScale(places, RoundingMode.HALF_UP);
	return bd.doubleValue();
}
 
开发者ID:collaction,项目名称:freehkkai-android,代码行数:8,代码来源:Util.java

示例6: analysisData

import java.math.BigDecimal; //导入方法依赖的package包/类
private List<GrpcnvokeStatistics> analysisData(Map<String, String> paramter) {
    List<GrpcnvokeStatistics> statistics = invokeMapper.queryData(paramter);
    for (Iterator<GrpcnvokeStatistics> it = statistics.iterator(); it.hasNext();) {
        GrpcnvokeStatistics st = it.next();
        int sumConsurrent = st.getSumConcurrent();
        Double sumElapsed = st.getSumElapsed();
        int sumSuccess = st.getSumSuccess();
        int sumFailure = st.getSumFailure();
        Double sumInput = st.getSumInput();
        int totalCount = sumFailure + sumSuccess;
        BigDecimal averageElapsed = BigDecimal.valueOf(sumElapsed).divide(BigDecimal.valueOf(totalCount), 2,
                                                                          BigDecimal.ROUND_HALF_DOWN);
        BigDecimal averageInput = BigDecimal.valueOf(sumInput).divide(BigDecimal.valueOf(totalCount), 2,
                                                                      BigDecimal.ROUND_HALF_DOWN);
        // TPS=并发数/平均响应时间
        BigDecimal tps = new BigDecimal(sumConsurrent);
        if (!(averageElapsed.doubleValue() == 0)) {
            tps = tps.divide(averageElapsed, 2, BigDecimal.ROUND_HALF_DOWN);
            tps = tps.multiply(BigDecimal.valueOf(1000));
            st.setTps(tps.doubleValue());
        } else {
            st.setTps(Double.valueOf(0));
        }
        // kbps=tps*平均每次传输的数据量
        BigDecimal kbps = new BigDecimal(st.getTps());
        if (!(averageElapsed.doubleValue() == 0) && !(averageInput.doubleValue() == 0)) {
            kbps = kbps.multiply(averageInput.divide(BigDecimal.valueOf(1024), 2, BigDecimal.ROUND_HALF_DOWN));
            st.setKbps(kbps.doubleValue());
        }
    }
    return statistics;
}
 
开发者ID:venus-boot,项目名称:saluki,代码行数:33,代码来源:MonitorDataService.java

示例7: round

import java.math.BigDecimal; //导入方法依赖的package包/类
public static double round(double value, int places) {
    if (places < 0) throw new IllegalArgumentException();

    BigDecimal bd = new BigDecimal(value);
    bd = bd.setScale(places, RoundingMode.HALF_UP);
    return bd.doubleValue();
}
 
开发者ID:toni8810,项目名称:TradingRobot,代码行数:8,代码来源:Trading.java

示例8: realizeCalculoFuturo1

import java.math.BigDecimal; //导入方法依赖的package包/类
private ResultadoCalculo realizeCalculoFuturo1() {
    ResultadoCalculo result = new ResultadoCalculo();
    double notaNecessaria = ((notaNecessariaTotal - ((nota1 * pesoB1) + (nota2 * pesoB2) + (nota3 * pesoB3))) / pesoB4);
    double media = (((nota1 * pesoB1) + (nota2 * pesoB2) + (nota3 * pesoB3) + (0 * pesoB4)) / somaPesos);

    BigDecimal mediaDecimal = new BigDecimal(media).setScale(1, RoundingMode.HALF_EVEN);
    media = (zeroACem) ? Math.round(media) : mediaDecimal.doubleValue();

    result.setMediaFinal(arredondaMedia(media));
    if (arredondaMedia(media) >= mediaNecessaria) {
        result.setSituacao("Aprovado");
        result.setMensagem("Parabéns, você está aprovado!");
    } else {
        result.setSituacao("Cursando");

        BigDecimal notaNecessariaDecimal = new BigDecimal(notaNecessaria).setScale(1, RoundingMode.HALF_EVEN);
        int notaNecessariaInt = (int) Math.round(notaNecessaria);

        if (zeroACem) {
            result.setNotaNecessaria(notaNecessariaInt);
            result.setMensagem("Você precisa de " + notaNecessariaInt + " no 4º Bimestre para ser aprovado.");
        } else {
            result.setNotaNecessaria(notaNecessariaDecimal.doubleValue());
            result.setMensagem("Você precisa de " + notaNecessariaDecimal + " no 4º Bimestre para ser aprovado.");
        }

    }

    return result;
}
 
开发者ID:caiovidaln,项目名称:ifcalc,代码行数:31,代码来源:NotasCalculadoraAnual.java

示例9: subtract

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * 高精度的减法
 * 
 * @author      ZhengWei(HY)
 * @createDate  2017-06-10
 * @version     v1.0
 *              v2.0  2018-01-04  支持不定多参
 *
 * @param i_Value01
 * @param i_ValueX
 * @return
 */
public final static double subtract(String i_Value01 ,String ... i_ValueX)
{
    BigDecimal v_Ret = new BigDecimal(i_Value01.trim()); 
    
    for (String v_ValueStr : i_ValueX)
    {
        BigDecimal v_Value = new BigDecimal(v_ValueStr.trim());
        
        v_Ret = v_Ret.subtract(v_Value);
    }
    
    return v_Ret.doubleValue();    
}
 
开发者ID:HY-ZhengWei,项目名称:hy.common.base,代码行数:26,代码来源:Help.java

示例10: div

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * @param first 第一个参数
 * @param second 第二个参数
 * @return 除法
 */
public static Object div(Object first,Object second) {
	BigDecimal a=Utils.toBigDecimal(first);
	BigDecimal b=Utils.toBigDecimal(second);
	BigDecimal c=a.divide(b,8,BigDecimal.ROUND_HALF_UP);
	return c.doubleValue();
}
 
开发者ID:youseries,项目名称:ureport,代码行数:12,代码来源:ArithUtils.java

示例11: rd

import java.math.BigDecimal; //导入方法依赖的package包/类
private static double rd(double value, int places) {
    if (places < 0)
        throw new IllegalArgumentException();

    BigDecimal bd = new BigDecimal(value);
    bd = bd.setScale(places, RoundingMode.HALF_UP);
    return bd.doubleValue();
}
 
开发者ID:TypingDNA,项目名称:TypingDnaRecorder-Java,代码行数:9,代码来源:TypingDNARecorder.java

示例12: getMonthlyExpenseRatio

import java.math.BigDecimal; //导入方法依赖的package包/类
public BigDecimal getMonthlyExpenseRatio(int month) {
    BigDecimal monthlyBudget = getMonthlyBudget(month);
    if (monthlyBudget.doubleValue() == 0) {
        return Util.NewBig();
    }
    return getMonthlyExpense(month).divide(monthlyBudget, Util.ROUND_METHOD);
}
 
开发者ID:monsieurh,项目名称:homebank_android,代码行数:8,代码来源:Category.java

示例13: round

import java.math.BigDecimal; //导入方法依赖的package包/类
/**
 * 四舍五入。
 * 
 * 解决Java本身无法完全处理四舍五入的问题
 * 
 * @param i_Value
 * @param i_Digit   保留小数位数
 * @return
 * @see   org.hy.common.xml.junit.JU_Round
 */
public final static double round(String i_Value ,int i_Digit) 
{
    BigDecimal v_Value = new BigDecimal(i_Value.trim());
            
    if ( v_Value.compareTo(BigDecimal.ZERO) == 0 )
    {
        return 0D;
    }
    
    BigDecimal v_Pow      = new BigDecimal(Math.pow(10d ,i_Digit));
    BigDecimal v_Big      = v_Value.multiply(v_Pow);
    BigDecimal v_Small    = new BigDecimal(Math.floor(v_Big.doubleValue()));
    double     v_Subtract = v_Big.subtract(v_Small).doubleValue();
    
    if ( v_Subtract >= 0.5d )
    {
        v_Small = v_Small.add(new BigDecimal(1d));
    }
    
    v_Small = v_Small.divide(v_Pow);
    
    return v_Small.doubleValue();
    
    // 下面代码无法解决 4.015 四舍五入2位等于 4.02 的目标
    // BigDecimal v_BigDecimal = new BigDecimal(String.valueOf(i_Value));
    // return v_BigDecimal.setScale(i_Digit ,BigDecimal.ROUND_HALF_EVEN).doubleValue();
}
 
开发者ID:HY-ZhengWei,项目名称:hy.common.base,代码行数:38,代码来源:Help.java

示例14: toDouble

import java.math.BigDecimal; //导入方法依赖的package包/类
private double toDouble(double d) {
	BigDecimal b = toBigDecimal(d);
	return b.doubleValue();
}
 
开发者ID:wooui,项目名称:springboot-training,代码行数:5,代码来源:MoneyUtil.java

示例15: setReal

import java.math.BigDecimal; //导入方法依赖的package包/类
public static String setReal(double num, int decimals) {
    BigDecimal bd = new BigDecimal(num);
    bd = bd.setScale(decimals);
    double db = bd.doubleValue();
    return String.valueOf(db);
}
 
开发者ID:actiontech,项目名称:dble,代码行数:7,代码来源:MySQLcom.java


注:本文中的java.math.BigDecimal.doubleValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。