當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。