本文整理汇总了Java中java.math.MathContext.DECIMAL32属性的典型用法代码示例。如果您正苦于以下问题:Java MathContext.DECIMAL32属性的具体用法?Java MathContext.DECIMAL32怎么用?Java MathContext.DECIMAL32使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类java.math.MathContext
的用法示例。
在下文中一共展示了MathContext.DECIMAL32属性的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: calcCenterOfGravity
/**
* 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;
}
示例2: main
public static void main(String[] args) {
SquareRootOfBigIntegerExample SquareRootOfBigIntegerExample =
new SquareRootOfBigIntegerExample();
String n = "";
MathContext mc = new MathContext(0, RoundingMode.DOWN);
mc = MathContext.DECIMAL32;
BigInteger my2P100000 = new BigInteger("0");
BigInteger two = new BigInteger("2");
BigInteger one = new BigInteger("1");
my2P100000 = two.shiftLeft(2000 - 1);
System.out.println("2^2000 -- Step 1");
System.out.println("Value of 2^2,000 " + my2P100000);
System.out.println("");
System.out.println("Finding the Square Root of 2^2000");
String mys = my2P100000 + "";
n = (mys);
int firsttime = 0;
BigDecimal myNumber = new BigDecimal(n);
BigDecimal g = new BigDecimal("1");
BigDecimal my2 = new BigDecimal("2");
BigDecimal epsilon = new BigDecimal("0.0000000001");
BigDecimal nByg = myNumber.divide(g, 9, BigDecimal.ROUND_FLOOR);
//Get the value of n/g
BigDecimal nBygPlusg = nByg.add(g);
//Get the value of "n/g + g
BigDecimal nBygPlusgHalf = nBygPlusg.divide(my2, 9, BigDecimal.ROUND_FLOOR);
//Get the value of (n/g + g)/2
BigDecimal saveg = nBygPlusgHalf;
firsttime = 99;
do {
g = nBygPlusgHalf;
nByg = myNumber.divide(g, 9, BigDecimal.ROUND_FLOOR);
nBygPlusg = nByg.add(g);
nBygPlusgHalf = nBygPlusg.divide(my2, 9, BigDecimal.ROUND_FLOOR);
BigDecimal savegdiff = saveg.subtract(nBygPlusgHalf);
if (savegdiff.compareTo(epsilon) == -1) {
firsttime = 0;
} else {
saveg = nBygPlusgHalf;
}
} while (firsttime > 1);
System.out.println(
"For " + mys + "\nLength: " + mys.length() + "\nThe Square Root is " + saveg);
}