Using double 2.0 - 1.1 = 0.8999999999999999
Using BigDecimal 2.0 - 1.1 = 0.9
BigInteger intVal
int scale
long intCompact
INFLATED = Long.MIN_VALUE
C
precision
precision
precision
2.0 = 20 × 10-1
unscaledValue: 20
scale: 1
precision: 2
Big decimal: 123.456789
Value: 123456789
Scale: 6
Precision: 9
Equal references ? false
Initial value 0
Result value 0.015
scale
scale
Big decimal A: 2.00 unscaled value: 200 scale: 2 precision: 3
Big decimal B: 2.0 unscaled value: 20 scale: 1 precision: 2
Are A and B equal ? false
Big decimal A: 2 unscaled value: 2 scale: 0 precision: 1
Big decimal B: 2 unscaled value: 2 scale: 0 precision: 1
Are A and B equal ? true
Equal references? false
HashSet size: 4
HashSet contents: [2.00, 2.000, 2, 2.0]
Big decimal A: 2.00 unscaled value: 200 scale: 2 precision: 3
Big decimal B: 2.0 unscaled value: 20 scale: 1 precision: 2
Are A and B equal ? true
TreeSet size: 1
TreeSet contents: [2]
TreeSet size: 11
TreeSet contents: [-3.0, -2.00, -1.0, 0.000, 2, 3.0, 4.00, 5.000, 6.00, 7.0, 8.00]
double val
0.5
0.25
0.125
0.0625
0.03125
0.1000000000000000055511151231257827021181583404541015625
0.01000000000000000020816681711721685132943093776702880859375
0.001000000000000000020816681711721685132943093776702880859375
0.000100000000000000004792173602385929598312941379845142364501953125
0.000010000000000000000818030539140313095458623138256371021270751953125
0.5
0.25
0.125
0.0625
0.03125
0.1
0.01
0.001
0.0001
0.00001
i = 10, j = 10, i==j is false
k = 10, l = 10, k==l is true
m = 11, n = 11, m==n is false
i = 0E-15, j = 0E-15, i==j is false
k = 0E-15, l = 0E-15, k==l is true
m = 0E-16, n = 0E-16, m==n is false
C
0.002 + 0.001 = 0.003
0.002 - 0.001 = 0.001
0.002 * 0.001 = 0.000002
0.002 / 0.001 = 2
100 + 0.01 = 100.01
100 - 0.01 = 99.99
100 * 0.01 = 1.00
100 / 0.01 = 1.00E+4
1 / 32 = 0.03125
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
at java.math.BigDecimal.divide(Unknown Source)
at bigdecimal.PreciseDivisionDemo.main(PreciseDivisionDemo.java:19)
2.10000
2.1000
2.100
2.10
2.1
Exception in thread "main" java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(Unknown Source)
at java.math.BigDecimal.setScale(Unknown Source)
at java.math.BigDecimal.setScale(Unknown Source)
at bigdecimal.ScaleDemo.main(ScaleDemo.java:17)
int precision
RoundingMode roundingMode
C
public class BigDecimal extends Number implements Comparable C
public final static int ROUND_UP = 0;
public final static int ROUND_DOWN = 1;
public final static int ROUND_CEILING = 2;
public final static int ROUND_FLOOR = 3;
public final static int ROUND_HALF_UP = 4;
public final static int ROUND_HALF_DOWN = 5;
public final static int ROUND_HALF_EVEN = 6;
public final static int ROUND_UNNECESSARY = 7;
public BigDecimal divide(BigDecimal divisor, int roundingMode)
}
C
2.00000 / 3.0 = 0.7
2.00000 / 3.0 = 0.67
2.00000 / 3.0 = 0.667
2.00000 / 3.0 = 0.6667
2.00000 / 3.0 = 0.66667
2.00000 / 3.0 = 0.666667
2.00000 / 3.0 = 0.6666667
2.00000 / 3.0 = 0.66666667
2.00000 / 3.0 = 0.666666667
C
2.00000 / 3.0 = 0.7
2.00000 / 3.0 = 0.67
2.00000 / 3.0 = 0.667
2.00000 / 3.0 = 0.6667
2.00000 / 3.0 = 0.66667
2.00000 / 3.0 = 0.666667
2.00000 / 3.0 = 0.6666667
2.00000 / 3.0 = 0.66666667
2.00000 / 3.0 = 0.666666667
Exception in thread "main" java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(BigDecimal.java:1439)
at java.math.BigDecimal.divide(BigDecimal.java:1385)
at bigdecimal.OldDivideDemo.main(OldDivideDemo.java:21)
2.333333
2.3333
2.333
2.33
2.3
2
BigDecimal value is: 123.456789
Converted BigInteger value is: 123
Exception in thread "main" java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(Unknown Source)
at java.math.BigDecimal.setScale(Unknown Source)
at java.math.BigDecimal.toBigIntegerExact(Unknown Source)
at bigdecimal.ConversionDemo.main(ConversionDemo.java:16)
BigDecimal value is: 1.234567890123456789
Converted double value is: 1.2345678901234567
Converted float value is: 1.2345679
BigDecimal value is: 1234567890123456789.0123456789
Converted long value is: 1234567890123456789
Exception in thread "main" java.lang.ArithmeticException: Rounding necessary
at java.math.BigDecimal.divideAndRound(Unknown Source)
at java.math.BigDecimal.setScale(Unknown Source)
at java.math.BigDecimal.longValueExact(Unknown Source)
at bigdecimal.ToIntDemo.main(ToIntDemo.java:16)
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть