ΠΠΊΡΡΠ³Π»ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ Π² Kotlin.
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
roundToInt()
ΡΡΠ½ΠΊΡΠΈΡThe roundToInt()
Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠΊΡΡΠ³Π»ΡΠ΅Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠΊΡΡΠ³Π»ΠΈΡΡ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΡΠ΄Π²ΠΎΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ.
1 2 3 4 5 6 7 8 9 | import kotlin.math.roundToInt Β fun main() { Β Β Β Β val random = 0.8458215996440445 Β Β Β Β Β val roundoff = (random * 100.0).roundToInt() / 100.0 Β Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 0.85 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
Β
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΡΠ»Π΅ΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ
ΡΠ°Π·ΡΡΠ΄ΠΎΠ² Π² Π²ΡΠ²ΠΎΠ΄Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΊΡΡΠ³Π»ΠΈΡΡ Π΄ΠΎ 4 Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
10000.0
:
1 2 3 4 5 6 7 8 9 | import kotlin.math.roundToInt Β fun main() { Β Β Β Β val random = 0.037854093052263726 Β Β Β Β Β val roundoff = (random * 10000.0).roundToInt() / 10000.0 Β Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 0.0379 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
Β
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π°:
1 2 3 4 5 6 7 8 9 | import kotlin.math.roundToInt Β fun main() { Β Β Β Β val random = 0.797490220519589 Β Β Β Β Β val roundoff = (random * 10000).roundToInt().toDouble() / 10000 Β Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 0.7975 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
Β
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½Π° ΠΈ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
295.335
ΠΎΠΊΡΡΠ³Π»ΡΠ΅ΡΡΡ βΠ² ΠΌΠ΅Π½ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρβ Π΄ΠΎ 295.33
Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ βΠ²Π²Π΅ΡΡ
β Π΄ΠΎ 295.34
.
1 2 3 4 5 6 7 8 | import kotlin.math.roundToInt Β fun main() { Β Β Β Β val random = 295.335 Β Β Β Β Β println(random * 100.0) // 29533.499999999996 Β Β Β Β println((random * 100.0).roundToInt() / 100.0) // 295.33 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
DecimalFormat.format()
ΡΡΠ½ΠΊΡΠΈΡΠ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π²Π°ΡΡ DecimalFormat.format()
ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π΄ΠΎ 2-Ρ
Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Π° #.##
. RoundingMode
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ setRoundingMode()
ΡΡΠ½ΠΊΡΠΈΡ.
1 2 3 4 5 6 7 8 9 10 11 | import java.math.RoundingMode import java.text.DecimalFormat Β fun main() { Β Β Β Β val random = 8435.21057752090819915 Β Β Β Β Β val df = DecimalFormat(«#.##») Β Β Β Β df.roundingMode = RoundingMode.DOWN Β Β Β Β val roundoff = df.format(random) Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 8435.21 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
Β
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ #
ΠΏΠΎΡΠ»Π΅ ΡΠΎΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π΄ΠΎ 3 Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½
:
1 2 3 4 5 6 7 8 9 10 11 | import java.math.RoundingMode import java.text.DecimalFormat Β fun main() { Β Β Β Β val random = 4732. Β Β Β Β Β val df = DecimalFormat(«#.###») Β Β Β Β df.roundingMode = RoundingMode.DOWN Β Β Β Β val roundoff = df.format(random) Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 4732.832 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
Β
ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΡΠΎ ΠΈ
ΡΡΠ½ΠΊΡΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½. Ρ. Π΅. Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 295.335
ΠΎΠΊΡΡΠ³Π»ΡΠ΅ΡΡΡ βΠ² ΠΌΠ΅Π½ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρβ Π΄ΠΎ 295.33
Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ βΠ²Π²Π΅ΡΡ
β Π΄ΠΎ 295.34
.
1 2 3 4 5 6 7 8 9 | import java.text.DecimalFormat Β fun main() { Β Β Β Β val random = 295.335 Β Β Β Β Β val df = DecimalFormat(«#.##») Β Β Β Β val roundoff = df.format(random) Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 295.33 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
3.
![](/800/600/https/i.ytimg.com/vi/rvzG1MdXW-I/hqdefault.jpg)
String.format()
ΡΡΠ½ΠΊΡΠΈΡΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ String.format()
ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 295.335
, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
fun main() { Β Β Β Β val random = 295.335 Β Β Β Β val roundoff = String.format(«%.2f», random) Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 295.34 } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
4. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
BigDecimal
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² BigDecimal
ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ 2 Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ
Π·Π½Π°ΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ RoundingMode
.
1 2 3 4 5 6 7 8 9 | import java. import java.math.RoundingMode Β fun main() { Β Β Β Β val random = Math.random() Β Β Β Β val bd = BigDecimal(random) Β Β Β Β val roundoff = bd.setScale(2, RoundingMode.FLOOR) Β Β Β Β println(roundoff) } |
Π‘ΠΊΠ°ΡΠ°ΡΡ ΠΊΠΎΠ΄
ΠΡΠΎ Π²ΡΠ΅ ΠΎΠ± ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠΈ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Ρ Π΄Π²ΡΠΌΡ Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΎΠΉ Π² Kotlin.
ΠΡΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ
Π‘ΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ΅ΠΉΡΠΈΠ½Π³ 5/5. ΠΠΎΠ΄ΡΡΠ΅Ρ Π³ΠΎΠ»ΠΎΡΠΎΠ²: 17
ΠΠΎΠ»ΠΎΡΠΎΠ² ΠΏΠΎΠΊΠ° Π½Π΅Ρ! ΠΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΡΠΎ ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠΎΡ ΠΏΠΎΡΡ.
Π‘ΠΎΠΆΠ°Π»Π΅Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎΡ ΠΏΠΎΡΡ Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π΄Π»Ρ Π²Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ!
Π Π°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»ΡΡΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠΎΡΡ?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π°Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ΄ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ C, C++, Java, Python, JavaScript, C#, PHP ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΌΡ? ΠΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠΉΡΠ΅ Π½Π°Ρ ΡΠ²ΠΎΠΈΠΌ Π΄ΡΡΠ·ΡΡΠΌ ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ Π½Π°ΠΌ ΡΠ°ΡΡΠΈ. Π£Π΄Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Class BigDecimal ΠΠ»Π°ΡΡ BigDecimal ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΎΠΌ, ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°.
![](/800/600/https/theslide.ru/img/thumbs/c0e3135fbdf7ee1e7302ca1a40a531bd-800x.jpg)
java.lang.Object
java.lang.Number
java.math.BigDecimal
- ΠΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ:
-
Serializable
,Comparable<BigDecimal>
public class BigDecimal extends Number implements Comparable<BigDecimal>
ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ. BigDecimal
ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ΅Π»ΠΎΠ³ΠΎunscaled valueΠΈ 32-Π±ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎscale. ΠΡΠ»ΠΈ ΡΠΊΠ°Π»Π° Π½ΡΠ»Π΅Π²Π°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½Π°Ρ, ΡΠΊΠ°Π»Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΡ ΡΠΏΡΠ°Π²Π° ΠΎΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΡΠΊΠ°Π»Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°, Π½Π΅ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΡΠΌΠ½ΠΎΠΆΠ°Π΅ΡΡΡ Π½Π° Π΄Π΅ΡΡΡΡ Π² ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΎΡΡΠΈΡΠ°Π½ΠΈΡ ΡΠΊΠ°Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ
, ΡΠ°Π²Π½ΠΎ (unscaledValue Γ 10-scale)
.
ΠΠ»Π°ΡΡ BigDecimal
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΎΠΌ, ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ, ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, Ρ
Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°. ΠΠ΅ΡΠΎΠ΄ toString
toString()
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ BigDecimal
.
ΠΠ»Π°ΡΡ BigDecimal
Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ ΠΈ ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½, Π²ΡΠ΄Π°Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
;Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° MathContext
.Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π²ΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ROUND_HALF_UP
) Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ; Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ enum
RoundingMode
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, RoundingMode.HALF_UP
).
ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ MathContext
MathContext.
UNLIMITED
), Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΠ½ΡΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ MathContext
ΠΎΠ±ΡΠ΅ΠΊΡ MathContext . ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° MathContext
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠΎΡΠ½ΠΎΡΡΠΈ 0 Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠ°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1, Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π½Π° 3. ΠΡΠ»ΠΈ ΡΠ°ΡΡΠ½ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΊΡΡΡΠΈΠ΅ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π° Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ArithmeticException
. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.ΠΠΎΠ³Π΄Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ Π½Π΅ ΡΠ°Π²Π΅Π½ 0, ΠΏΡΠ°Π²ΠΈΠ»Π° Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ BigDecimal
Π² ΡΠ΅Π»ΠΎΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ Π² ANSI X3.274-1996 ΠΈ ANSI X3.274-1996 / AM 1-2000 (ΡΠ°Π·Π΄Π΅Π» 7.4). Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠΈΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² BigDecimal
Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ. ΠΡΠ±ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ ANSI ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ
BigDecimal
ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ BigDecimal
.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ (Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΡΠ°Π±Π°ΠΌΠΈ),ΠΏΡΠ°Π²ΠΈΠ»Π° Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ ΠΈ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ,ΡΠ°ΠΊ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±,ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΡΠ»Π°.cohort. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ BigDecimal ΡΡΠΈΡΠ°Π΅Ρ BigDecimal
ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ³ΠΎΡΡΡ ΡΠ°Π²Π½ΡΠΌΠΈ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΠΌΠ΅ΡΠΎΠ΄ equals
ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠ°ΠΊ scale
ΠΈ unscaledValue()
, Π±ΡΠ΄ΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠΈΡΠ»Π΅Π½Π½ΠΎ ΡΠ°Π²Π½ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ±ΡΡΠ½ΠΎ ΡΠ΅ΠΆΠΈΠΌΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Ρ), ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ
ΡΠΈΡΡ. ΠΠΎ- ΠΏΠ΅ΡΠ²ΡΡ
, ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π·Π°Π΄Π°Π΅ΡΡΡ
MathContext
Β«s precision
Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ; ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρprecision. ΠΠΎΠ΄ΡΡΠ΅Ρ ΡΠΈΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠ°ΠΌΠΎΠΉ Π»Π΅Π²ΠΎΠΉ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠΈΡΡΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. Π Π΅ΠΆΠΈΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π»ΡΠ±ΡΠ΅ ΠΎΡΠ±ΡΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ Π²Π»ΠΈΡΡΡ Π½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠ»Ρ Π²ΡΠ΅Ρ
Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠΈΡΠ»ΡΠ»ΡΡ ΡΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠΊΡΡΠ³Π»ΡΠ»ΡΡ Π΄ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΡΡ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ (ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ), Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΡΠ΄Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ. ΠΠΎΠ³Π΄Π° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π½ΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΈΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π° ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ°, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΠ΅Π³ΠΎΡΡ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΡΡ Β«9Β». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 999,9 Π΄ΠΎ ΡΡΠ΅Ρ
ΡΠΈΡΡ Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Π±ΠΎΠ»ΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ»Π΅Π½Π½ΠΎ ΡΠ°Π²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΡΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ 100Γ10 1 . Π ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π½ΠΎΠ²Π°Ρ Β«1Β» ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΡΡΠΎΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
ΠΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ MathContext
, Π΅ΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ΡΠΎΡΠ½ΡΠΉ, Π½ΠΎ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ UNNECESSARY
, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ArithmeticException
.
ΠΠΎΠΌΠΈΠΌΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°,ΠΊΠ°ΠΆΠ΄Π°Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΠ°Π± Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.ΠΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΊΠ°Π»Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅.
Operation | ΠΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΊΠ°Π»Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° |
---|---|
Add | max(addend.scale(), augend.scale()) |
Subtract | max(minuend.scale(), subtrahend.scale()) |
Multiply | multiplier.scale() + multiplicand.scale() |
Divide | dividend.scale() — divisor.scale() |
Square root | radicand.![]() |
ΠΡΠΈ ΡΠΊΠ°Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΡ
ΡΠΎΡΠ½ΡΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ; Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΌΠ°ΡΡΡΠ°Π±, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 1/32
— 0.03125
.
ΠΠ΅ΡΠ΅Π΄ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π»Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»ΠΎΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΠΎΡΠ½ΡΠΉ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠΈΡΡΠ°Ρ
precision
, ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠΈΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, Π° ΠΌΠ°ΡΡΡΠ°Π± ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΌΠ°ΡΡΡΠ°Π±Π° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π΄ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΡ precision
. ΠΡΠ»ΠΈ ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Ρ precision
ΡΠΈΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΡΠΎ ΡΠΊΠ°Π»ΠΎΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Π΅. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌΠΎΠ΅ ΡΠ°ΡΡΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Ρ precision
ΠΌΠ΅Π½ΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ ΡΠΎΡΠ½ΠΎΡΡΡΡΠΈΡΡ, ΡΠ΄Π°Π»ΠΈΠ² ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π½ΡΠ»ΠΈ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΠ² ΠΌΠ°ΡΡΡΠ°Π±. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ ΡΡΠ΅Ρ
ΡΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π° ,
19/100 = 0.19 // integer=19, scale=2
but21/110 = 0.190 // integer=190, scale=3
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅,ΡΡΠΎ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ,Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ,ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΡΠ°Π±Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΉ ΡΠΈΡΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°,ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ.ΠΡΠ»ΠΈ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ ΡΠ°Π·ΡΡΠ΄Π°ΠΌΠΈ,Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ,ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ°Π·ΡΡΠ΄Π°ΠΌΠΈ.
ΠΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° pow
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π½Π° ΠΎΠ΄Π½Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π·ΡΡΠ΄Π΅, ΠΎΠ΄ΠΈΠ½ulp.
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΎΠΌ BigDecimal ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ BigDecimal
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ/ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ/ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ (
setScale
ΠΈ round
) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ BigDecimal
, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ (ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΠΎ) ΡΠ°Π²Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, Π½ΠΎ ΠΌΠ°ΡΡΡΠ°Π± ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ; ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π½Π° Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ( movePointLeft
ΠΈ movePointRight
) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ BigDecimal
, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ.
ΠΠ°ΠΊ 32-Π±ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, Π½Π°Π±ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠΊΠ°Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ, Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ. ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΡΠ°Π± ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΡΠ΅Π²ΡΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈΠ·-Π·Π° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ArithmeticException
.
ΠΠ»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² BigDecimal
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ . ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π° (i + j)
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Β« BigDecimal
, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ BigDecimal
i
, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ BigDecimal
j
Β». ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π°
(i == j)
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Β« true
ΡΠΎΠ³Π΄Π° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° BigDecimal
i
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈ BigDecimal
j
Β». ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π°. ΠΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡ BigInteger
ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ BigDecimal
Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ [19, 2] — ΡΡΠΎ BigDecimal
, ΡΠΈΡΠ»Π΅Π½Π½ΠΎ ΡΠ°Π²Π½ΠΎΠ΅ 0,19 ΠΈ ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΠΌΠ°ΡΡΡΠ°Π± 2.
ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° NullPointerException
ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° null
ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
- API Note:
- Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΠ²Π»ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ , Π΅ΡΠ»ΠΈ
BigDecimal
ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π²SortedMap
ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²SortedSet
Π½Π°ΡΠΈΠ½Π°Ρ ΡBigDecimal
Β«Ρnatural orderingΡΡΠΎ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΡΠ΅ΡΡΡ Ρ ΡΠ°Π²Π½ΡΠΌΠΈ . Π‘ΠΌComparable
,SortedMap
ΠΈΠ»ΠΈSortedSet
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² 2008 Π³ΠΎΠ΄ΡΠ‘ΡΠ°Π½Π΄Π°ΡΡ IEEE 754 Π΄Π»Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π» Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. Π₯ΠΎΡΡ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ IEEE 754 ΠΈ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ, Π΅ΡΡΡ ΠΈ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ. Π€ΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎ, ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ΅
BigDecimal
ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΉ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΎΠΉ IEEE 754, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌΠΎΠ΅ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ . ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π΄Π»ΡBigDecimal
.ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π² IEEE 754-2019. ΠΠΎΠ³Π΄Π° ΡΠΎΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌΡΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠΈ Π΄Π»Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ±Π΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Ρ / ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ .ΠΠ»Ρ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ IEEE 754 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΠΌΡΡ
BigDecimal
, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π½ΡΠ»Ρ, Π·Π½Π°ΠΊΠΎΠ²ΡΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠΈ ΠΈ NaN (Π½Π΅ ΡΠΈΡΠ»ΠΎ). IEEE 754 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΡΠΌΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠΌ), ΡΠΈΡΠ»ΠΎΠΌ ΡΠ°Π·ΡΡΠ΄ΠΎΠ² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. Π€ΠΎΡΠΌΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈ Π²ΡΠ΄Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΠ°ΡΡΡΠ°Π±BigDecimal
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΎΡΡΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ IEEE 754 .BigDecimal
Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡΠΌΠ°ΡΠ° Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠΌΡΡΠ»Π΅; Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠ°ΡΡΡΠ°Π±Π°/ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π° Π½Π΅ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π»ΡBigDecimal
, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡMathContext
, Π΅ΡΠ»ΠΈMathContext
ΠΈΠΌΠ΅Π΅Ρ Π½Π΅Π½ΡΠ»Π΅Π²ΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ, Π½Π°Π±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°MathContext
.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²
BigDecimal
, Π΅ΡΠ»ΠΈ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ ΡΡΠ΅Ρ Π·Π½Π°ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ ΡΠ΅ΡΡΡΠ΅Ρ Π·Π½Π°ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°MathContext
, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΡΠΎΡΠ½ΠΎΡΡΡ ΡΡΠΈ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΠΈΡΡ (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Ρ. Π΄. ).ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ
BigDecimal
, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΡΡΡΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ IEEE 754.BigDecimal
ΠΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ° BigDecimal Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΡ IEEE 754, Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡMathContext
, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄Π΅ΡΡΡΠΈΡΠ½ΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ IEEE 754, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ decimal64 ΠΈΠ»ΠΈ decimal128 . ΠΡΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° IEEE 754 ΠΏΡΠ΅Π²ΡΡΠ΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡMathContext
Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π± ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²BigDecimal
.ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ NaN ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ,
ArithmeticException
BigDecimal
ArithmeticException Π² Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ΅ BigDecimal . - Since:
- 1.1
- See Also:
BigInteger
MathContext
RoundingMode
SortedMap
SortedSet
- Π‘ΡΠ°Π½Π΄Π°ΡΡ IEEE Π΄Π»Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ
- Serialized Form
Β© 1993, 2022, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian’s OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.
![](/800/600/https/image3.slideserve.com/6062850/pascalabc-net-l.jpg)
OpenJDK 19
-
Class Void
-
Class WrongThreadException
-
Field Summary
-
Methods declared in class java.
lang.
- 1
- β¦
- 545
- 546
- 547
- 548
- 549
- β¦
- 6528
- Next
Sequenced Collections Π΄Π»Ρ JDK 21, Vector API Π΄Π»Ρ JDK 20, Gen ZGC, Hilla 2.
![](/800/600/https/silverkomp.ru/wp-content/uploads/2022/11/d1ee9b5e716d66041ec3f8ae5eba5067.jpg)
ΠΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° InfoQ ΠΠΎΠ²ΠΎΡΡΠΈ ΠΠ±Π·ΠΎΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ Java: Sequenced Collections Π΄Π»Ρ JDK 21, Vector API Π΄Π»Ρ JDK 20, Gen ZGC, Hilla 2.0
QCon New York (13β15 ΠΈΡΠ½Ρ): ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΎΡ ΡΡΠ°ΡΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ , Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΡ ΡΡ ΡΠ°Π½Π½ΠΈΠΌΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ.
ΠΠ°ΠΊΠ»Π°Π΄ΠΊΠΈ
13 ΠΌΠ°ΡΡΠ° 2023 Π³. 6 ΠΌΠΈΠ½ ΡΠΈΡΠ°ΡΡ
ΠΏΠΎ
ΠΠ°ΠΉΠΊΠ» Π Π΅Π΄Π»ΠΈΡ
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π΄Π»Ρ InfoQ
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ². Π£Π²Π΅Π»ΠΈΡΡΡΠ΅ ΡΠ²ΠΎΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ.Π Π°Π·Π²ΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΠΊΠ°ΡΡΠ΅ΡΡ.ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅
ΠΠ±Π·ΠΎΡ Java Π½Π° ΡΡΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΠΎΡ 6 ΠΌΠ°ΡΡΠ° 2023 Π³. ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠ²ΠΎΡΡΠΈ OpenJDK, JDK 20, JDK 21, Spring Cloud Data Flow 2.10.2, Spring Modulith 0.5, Quarkus 2.16. 14 ΠΈ 3.0.0. .Alpha5, Open Liberty 23.0.0.2, Micronaut 3.8.7, Helidon 2.6.0, Apache Tomcat 11.0.0-M4, Apache Camel-4.0.0-M2, JobRunr 6.1.1, Jarviz 0.3.0 ΠΈ Hilla 2.0.
OpenJDK
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠ°ΡΡΡ JEP 438, Vector API (ΠΡΡΡΠΉ ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡ), Π±ΡΠ» ΠΏΠΎΠ²ΡΡΠ΅Π½ Ρ ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ΅Π»ΠΈ Π΄ΠΎ Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ°ΡΡΡ Π΄Π»Ρ JDK 20 Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅. ΠΡΠΎΡ JEP, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌΡΠΉ ΠΏΠΎΠ΄ ΡΠ³ΠΈΠ΄ΠΎΠΉ Project Panama, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΎΡΠ·ΡΠ²Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΠ΅ΡΡΡΠ΅Ρ
ΡΠ°ΡΠ½Π΄ΠΎΠ² ΠΈΠ½ΠΊΡΠ±Π°ΡΠΈΠΈ: JEP 426, Vector API (ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡ), ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π² JDK 19; JEP 417, Vector API (ΡΡΠ΅ΡΠΈΠΉ ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡ), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² JDK 18; JEP 414, Vector API (Π²ΡΠΎΡΠΎΠΉ ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡ), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² JDK 17; ΠΈ JEP 338, Vector API (Incubator), ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ-ΠΈΠ½ΠΊΡΠ±Π°ΡΠΎΡ Π² JDK 16. JEP 438 ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ»ΡΡΡΠΈΡΡ Vector API Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π² ΠΈ ΠΈΠ· MemorySegment
, ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ JEP 424, API Π²Π½Π΅ΡΠ½ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ).
JEP 431, Sequenced Collections, Π±ΡΠ» ΠΏΠΎΠ²ΡΡΠ΅Π½ Ρ Candidate Π΄ΠΎ Proposed to Target ΡΡΠ°ΡΡΡΠ° Π΄Π»Ρ JDK 21. ΠΡΠΎΡ JEP ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²Π²Π΅ΡΡΠΈ Β«Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈΒ». ΠΠΎΡΠΈΠ²Π°ΡΠΈΡ Π±ΡΠ»Π° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² ΡΠ°ΠΌΠΊΠ°Ρ Collections Framework. ΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ±Π·ΠΎΡ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ 16 ΠΌΠ°ΡΡΠ° 2023 Π³. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ JEP 431 ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΡΡΠΈ InfoQ.
JEP 439, Generational ZGC, Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π±ΡΠ» ΠΏΠΎΠ²ΡΡΠ΅Π½ ΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠ°ΡΡΡΠ° Draft 8272979 Π΄ΠΎ Candidate . Π ΡΡΠΎΠΌ JEP ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Β«ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° Z (ZGC) Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΌΠΎΠ»ΠΎΠ΄ΡΡ
ΠΈ ΡΡΠ°ΡΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ZGC ΡΠ°ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΌΠΎΠ»ΠΎΠ΄ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΡΠΌΠΈΡΠ°ΡΡ ΠΌΠΎΠ»ΠΎΠ΄ΡΠΌΠΈΒ».
ΠΠ°Π»ΠΈΠ±ΠΎΡ Π’ΠΎΠΏΠΈΠΊ, Π³Π»Π°Π²Π½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌ Π² Oracle, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠ°ΡΠΏΡΡΡΠΈΡΡ ΠΈ Π·Π°Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ JDK 6 ΠΈΠ·-Π·Π°: ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΡΡΡΠ»ΠΊΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° Π³ΠΎΠ΄Π°; ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ»ΡΠΊΠ° Π² Π΅Π³ΠΎ Π»Π΅Ρ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ Π³ΠΎΠ΄Π°. InfoQ ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ Π½ΠΎΠ²ΠΎΡΡΡ.
JDK 20
JDK 20 ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ° Π½Π° Π²ΡΠΏΡΡΠΊ Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ 21 ΠΌΠ°ΡΡΠ° 2023 Π³. Π‘Π±ΠΎΡΠΊΠ° 36 ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ Π² ββΡΠ±ΠΎΡΠΊΠ°Ρ ΡΠ°Π½Π½Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° JDK 20. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ ΠΊ Π²ΡΠΏΡΡΠΊΡ.
JDK 21
ΠΠ° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π»Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠ±ΠΎΡΠΊΠ° 13 ΡΠ±ΠΎΡΠΎΠΊ ΡΠ°Π½Π½Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° JDK 21, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ 12, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ ΠΊ Π²ΡΠΏΡΡΠΊΡ.
ΠΠ»Ρ JDK 20 ΠΈ JDK 21 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠ΅ΡΠ΅Π· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Java.
Spring Framework
ΠΡΠΏΡΡΠΊ Spring Cloud Data Flow 2. 10.2 ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄ΠΎ Spring Boot 2.7.9 ΠΈ Spring Cloud 2021.0.6, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ: Spring Cloud Dataflow Build 2.10.2; ΠΠ±ΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ
Spring Cloud 2.10.2; ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Spring Cloud Dataflow 3.3.2; ΠΈ Spring Cloud Deployer K8S 2.8.2. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ
ΠΊ Π²ΡΠΏΡΡΠΊΡ.
ΠΡΠΏΡΡΠΊ Spring Modulith 0.5 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄ΠΎ Spring Boot 3.0.4 ΠΈ jMolecules 2022.2.4, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ: ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
JDBC, spring.modulith.events.schema-initialization.enabled
, to spring.modulith.events.jdbc-schema-initialization.enabled
. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Quarkus
ΠΡΡΡΠΉ (ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ) Π°Π»ΡΡΠ°-Π²ΡΠΏΡΡΠΊ Quarkus 3.0.0 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ: Hibernate ORM 6.0 ΠΈ ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ StatelessSession
; Π½ΠΎΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²; ΠΡΠ΅ΠΉΠ΄Π» 8. 0; ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² REST Client Reactive Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ
@ClientRedirectHandler
; ΠΈ ΡΠ°ΡΠΎΠ²ΡΠ΅ ΠΏΠΎΡΡΠ° Π΄Π»Ρ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ cron ΡΠ΅ΡΠ΅Π· Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Scheduled
. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Quarkus 2.16.14.Final, ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΡΡ
ΡΠ²ΠΎΠΉΡΡΠ² ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Quarkus; Π²Π΅ΡΠ½ΡΡΡ Π½ΠΎΠ»Ρ InputStream
ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° REST, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ 204, Π½Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ; ΠΈ ΡΠ»ΡΡΡΠ΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° Π² ΠΊΠ»Π°ΡΡΠ΅ DevServicesKubernetesProcessor
. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Open Liberty
IBM Π²ΡΠΏΡΡΡΠΈΠ»Π° Open Liberty 23.0.0.2, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ: ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Ρ Π¦Π΅Π½ΡΡΠΎΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ; Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --timeout
Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°
; ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ CVE-2022-45787, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π»Π΅Π½ΠΈΠ²ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠΌ TempFileStorageProvider
Π² Apache James Mime4J, ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ°ΡΠΊΡΡΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄ΡΡΠ³ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
Micronaut
Π€ΠΎΠ½Π΄ Micronaut Π²ΡΠΏΡΡΡΠΈΠ» Π²Π΅ΡΡΠΈΡ Micronaut 3.8.7 Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ: Micronaut Serialization, Micronaut CRaC, Micronaut Kafka, Micronaut AOT ΠΈ Micronaut GCP. Π’Π°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠΏΡΡΠ΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ SnakeYAML 2.0, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΡΠ°Π½ΡΠ΅Ρ CVE-2022-1471, ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ SnakeYAML Constructor()
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ
ΠΊ Π²ΡΠΏΡΡΠΊΡ.
Helidon
Oracle Π²ΡΠΏΡΡΡΠΈΠ»Π° Helidon 2.6.0 Ρ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ: ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠ»ΡΠΆΠ±Ρ OciMetricsSupport
ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ»Π°Π³ enable
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° true; ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄ΠΎ SnakeYAML 2.0; ΠΎΡΠΈΡΡΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Helidon, ΡΠ΄Π°Π»ΠΈΠ² Π½Π΅ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ; ΠΈ ΡΠ±ΡΠ°ΡΡ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
Apache Software Foundation
Π§Π΅ΡΠ²Π΅ΡΡΡΠΉ ΡΡΠ°ΠΏΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ Apache Tomcat 11.0.0, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ: Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° URL; ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ JavaBeans, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° java.beans
; ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² NIO2 Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ
ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠΎΡΠΎΠΉ Π²Π°ΠΆΠ½ΡΠΉ Π²ΡΠΏΡΡΠΊ Apache Camel 4.0.0 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ URL-Π°Π΄ΡΠ΅ΡΠ° Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ camel-minio
Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΡΠ»ΡΠΆΠ±Π°ΠΌ; Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΡ
Π΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ camel-health
; ΠΈ Π²ΡΠ²ΠΎΠ΄ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΏΠ΅ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ camel-jbang
. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ
ΠΊ Π²ΡΠΏΡΡΠΊΡ.
JobRunr
ΠΡΠΏΡΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ JobRunr 6.1.1 Ρ Π΄Π²ΡΠΌΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ: ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠ΅Π³ΠΎΡΡ Π·Π°Π΄Π°Π½ΠΈΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ JobLambda
; ΠΈ NullPointerException
ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² Π·Π°Π΄Π°Π½ΠΈΠΈ JSON ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Yasson.
Jarviz
ΠΠ΅ΡΡΠΈΡ 0.3.0 Jarviz, Π½ΠΎΠ²ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°ΠΉΠ»ΠΎΠ² JAR, Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° ΠΠ½Π΄ΡΠ΅ΡΠΎΠΌ ΠΠ»ΡΠΌΠΈΡΠ°Π΅ΠΌ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° Java. ΠΡΠ° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½ΠΎΠ²ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ: Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, extract
Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ JAR ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ; Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° validate
Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠΌΠ΅Π½ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²; ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --output-format
Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π°.
Hilla
ΠΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ Vaadin Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ 2.0 Hilla, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ Spring Boot Java Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ TypeScript. ΠΡΠ° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ: JDK 17; ΠΠΆΠ°ΠΊΠ°ΡΡΠ° EE 10; ΠΠ΅ΡΠ΅Π½Π½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° 3.0; ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π½Π΅Π΄ΠΏΠΎΠΈΠ½ΡΡ; ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ GraalVM; ΠΈ SSO Kit Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ
ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Hilla. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ
ΠΊ Π²ΡΠΏΡΡΠΊΡ ΠΈ Π² ΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΡΡΠΈ InfoQ.
ΠΠ± Π°Π²ΡΠΎΡΠ΅
Michael RedlichΠΠΎΠΊΠ°Π·Π°ΡΡ Π΅ΡΠ΅Π‘ΠΊΡΡΡΡ
ΠΡΠ΅Π½ΠΈΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ
ΠΡΠΈΠ½ΡΡΠΈΠ΅
ΠΠ²ΡΠΎΡ ΡΠ²ΡΠ·Π°Π»ΡΡ Ρ
ΠΠ΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»ΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ? ΠΠΈΡΠΈΡΠ΅ Π΄Π»Ρ InfoQ.
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ Π΄Π»Ρ InfoQ ΠΎΡΠΊΡΡΠ»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π²Π΅ΡΠ΅ΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° . Π― ΡΠΌΠΎΠ³ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΠΎΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠΊΡΠΏΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ Π»ΠΈΠ΄Π΅ΡΠ°ΠΌΠΈ ΠΌΠ½Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ΅ΠΌΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΠ²Π΅ΡΠ°Π». Π Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ ΡΡΠ΅Π΄ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅.
ΠΠΈΠ²ΠΈΠ°Π½ Π₯Ρ Π Π΅Π΄Π°ΠΊΡΠΎΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ DevOps @InfoQ; ΠΠΈΡΠ΅ΠΊΡΠΎΡ ΠΏΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌ @Second State
ΠΠ°ΠΏΠΈΡΡ Π΄Π»Ρ InfoQ
ΠΠ΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»ΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ? ΠΠΈΡΠΈΡΠ΅ Π΄Π»Ρ InfoQ.
Π― ΠΎΡΠΊΡΡΠ» Π΄Π»Ρ ΡΠ΅Π±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ InfoQ Π΄Π»Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° ΠΈ Ρ ΡΠ΅Ρ ΠΏΠΎΡ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΡΡΡ Π΅Ρ! Π‘ΠΈΡΡΠ΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ InfoQ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»Π° ΠΌΠ½Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΌΠΈΡΠΎΠ²ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠΈΠ»Π° ΠΌΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΈΡΡΠΌΠ°.0022 . ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠ΅ΡΠ΅ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π½Π°ΡΠ½ΠΈΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ Π² InfoQ.
ΠΠ³Π΅Π½Π΅Π²Π²Π΅Π΄Π΅ ΠΠΌΠ΅Π½ΠΈ ΠΠ²ΡΠΎΡ ΡΡΠ°ΡΠ΅ΠΉ @InfoQ; Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π³Π΅Π½Π΅ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ @Pact
ΠΠ°ΠΏΠΈΡΡ Π΄Π»Ρ InfoQ
ΠΠ΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»ΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ? ΠΠΈΡΠΈΡΠ΅ Π΄Π»Ρ InfoQ.
Π― Π½Π°ΡΠ°Π» ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ InfoQ .NET, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΎΡΡΡΠ°Π²Π°ΡΡ ΠΎΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΎΡ ΡΡΠΎΠ³ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅. Π― Π²ΡΡΡΠ΅ΡΠΈΠ» Π·Π½Π°ΡΡΠΈΡ
Π»ΡΠ΄Π΅ΠΉ, ΠΏΠΎΠ»ΡΡΠΈΠ» Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ»ΡΡΡΠΈΠ» ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ ΠΏΠΈΡΡΠΌΠ° .
ΠΠ΄ΠΈΠ½ ΠΠ°ΠΏΠΈΡ Π Π΅Π΄Π°ΠΊΡΠΎΡ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ .NET @InfoQ; ΠΠ΅Π΄ΡΡΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ @Vista, Π±ΡΠ²ΡΠΈΠΉ Microsoft MVP
ΠΠ°ΠΏΠΈΡΡ Π΄Π»Ρ InfoQ
ΠΠ΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»ΡΡ ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ? ΠΠΈΡΠΈΡΠ΅ Π΄Π»Ρ InfoQ.
Π‘ΡΠ°ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ InfoQ Π±ΡΠ»ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΌΠΎΠ΅ΠΉ ΠΊΠ°ΡΡΠ΅ΡΠ΅ . ΠΡΠΎ Π±ΡΠΎΡΠΈΠ»ΠΎ ΠΌΠ½Π΅ Π²ΡΠ·ΠΎΠ², ΠΈ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΌΠ½Π΅ Π²ΡΡΠ°ΡΡΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ . ΠΡ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ, ΡΡΠΎΠ±Ρ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ .
Π’ΠΎΠΌΠ°Ρ ΠΠ΅ΡΡΡ ΠΠ΅Π΄ΡΡΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΎΡΠ΄Π΅Π»Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ @InfoQ; Π‘ΡΠ°ΡΡΠΈΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ
ΠΠ°ΠΏΠΈΡΡ Π΄Π»Ρ InfoQ
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΡΡΠ°ΡΡ Π½Π°ΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π³Π»Π°Π²Π½ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ?
InfoQ ΠΈΡΠ΅Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Π½Π° ΠΏΠΎΠ»Π½ΡΡ ΡΡΠ°Π²ΠΊΡ , ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ, Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ C4Media. ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ Π½Π°ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠ°ΠΌΡΡ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ Π½Π°ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ°ΡΡ Ρ ΡΠ°ΠΌΡΠΌΠΈ ΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ Π² ΠΌΠΈΡΠ΅ ΠΈ ΠΏΠΎΠΌΠΎΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 1,6 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²Π½Π΅Π΄ΡΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π΄Π²ΠΈΠ³Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄!
ΠΠΎΠ΄Π°ΡΡ Π·Π°ΡΠ²ΠΊΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π±ΡΠ»Π»Π΅ΡΠ΅Π½Ρ InfoQ ΠΠ±Π·ΠΎΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΡΠΎΡΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π° InfoQ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΡΠ»Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΎΡΠ½ΠΈΠΊ. ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ ΠΈΠ· Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ 250 000 ΡΡΠ°ΡΡΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ
ΠΡ Π·Π°ΡΠΈΡΠ°Π΅ΠΌ Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ.
ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ | ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ICU
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
- Comparison of Rounding Modes
- Half Even
- Half Odd
- Half Down
- Half Up
- Down
- Up
- Half Ceiling
- Half Floor
- Ceiling
- Floor
- Unnecessary
- ΠΡΡΠ³ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ/ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Ρ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠΌ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ICU. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ICU ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² Β«Π²Π½ΠΈΠ·Β» ΠΈ Β«Π²Π²Π΅ΡΡ Β» Π·Π΄Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡ ΠΎΠ΄ΠΈΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ, Π½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Java JDK.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΎΠΊΡΡΠ³Π»Π΅Π½ΠΈΡ
ΠΠ° ΡΡΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ -2,0 Π΄ΠΎ 2,0 Ρ ΡΠ°Π³ΠΎΠΌ 0,1, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ ICU ΠΏΡΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π±Π΅Π· Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ
ΡΠΈΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ICU4J, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ JDK RoundingMode.
# | CEILING | FLOOR | DOWN | UP | HALFEVEN | HALFODD | HALFCEILING | HALFFLOOR | HALFDOWN | HALFUP | # |
---|---|---|---|---|---|---|---|---|---|---|---|
-2.0 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -2.0 |
-1.9 | -1 | -2 | -1 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -1.9 |
-1.8 | -1 | -2 | -1 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -1.![]() |
-1.7 | -1 | -2 | -1 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -1,7 |
-1.6 | -1 | -2 | -1 | -2 | -2 | -2 | -2 | -2 | -2 | -2 | -1.6 |
-1.5 | -1 | -2 | -1 | -2 | -2 | -1 | -1 | -2 | -1 | -2 | -1.5 |
-1,4 | -1 | -2 | -1 | -2 | -1 | -1 | -1 | -1 | -1 | -1 | -1.4 |
-1.3 | -1 | -2 | -1 | -2 | -1 | -1 | -1 | -1 | -1 | -1 | -1.![]() |
-1.2 | -1 | -2 | -1 | -2 | -1 | -1 | -1 | -1 | -1 | -1 | -1.2 |
-1.1 | -1 | -2 | -1 | -2 | -1 | -1 | -1 | -1 | -1 | -1 | -1.1 |
-1.0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1.0 |
-0.9 | -0 | -1 | -0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -0.9 |
-0.8 | -0 | -1 | -0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -0,8 |
-0,7 | -0 | -1 | -0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -0.![]() |
-0.6 | -0 | -1 | -0 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -0.6 |
-0.5 | -0 | -1 | -0 | -1 | -0 | -1 | -0 | -1 | -0 | -1 | -0.5 |
-0.4 | -0 | -1 | -0 | -1 | -0 | -0 | -0 | -0 | -0 | -0 | -0.4 |
-0.3 | -0 | -1 | -0 | -1 | -0 | -0 | -0 | -0 | -0 | -0 | -0.3 |
-0.2 | -0 | -1 | -0 | -1 | -0 | -0 | -0 | -0 | -0 | -0 | -0.![]() |
-0.1 | -0 | -1 | -0 | -1 | -0 | -0 | -0 | -0 | -0 | -0 | -0,1 |
0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0 |
0.1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.1 |
0.2 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.2 |
0.3 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.3 |
0.![]() | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.4 |
0.5 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0.5 |
0.6 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.6 |
0.7 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.7 |
0.8 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.8 |
0.9 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.![]() |
1.0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1.0 |
1.1 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1.1 |
1.2 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1.2 |
1.3 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1.3 |
1.4 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1.4 |
1.![]() | 2 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | 1.5 |
1.6 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1.6 |
1.7 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1.7 |
1.8 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1.8 |
1.9 | 2 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1.9 |
2.0 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2.![]() |
# | CEILING | FLOOR | DOWN | UP | HALFEVEN | Halfodd | Halfceliling | Halffloor | Halfdown | Halfup | # |