Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΠΊΡ€ΡƒΠ³Π»ΠΈΡ‚Π΅ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ число с двумя Π·Π½Π°ΠΊΠ°ΠΌΠΈ послС запятой Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы округлСния числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ числа с двумя Π·Π½Π°ΠΊΠ°ΠΌΠΈ послС запятой Π² 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. 8326486752163523

Β 

Β Β Β Β val df = DecimalFormat(«#.###»)

Β Β Β Β df.roundingMode = RoundingMode.DOWN

Β Β Β Β val roundoff = df.format(random)

Β Β Β Β println(roundoff)Β Β Β Β Β Β Β Β // 4732.832

}

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄

Β 
Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ сталкиваСтся с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ

roundToInt() функция, Ссли Ρ€Π΅ΠΆΠΈΠΌ округлСния Π½Π΅ прСдусмотрСн. Ρ‚. Π΅. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 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.

ИспользованиС 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 дСсятичных Π·Π½Π°ΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ

setScale() функция с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ RoundingMode.

1

2

3

4

5

6

7

8

9

import java. math.BigDecimal

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 прСдоставляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, управлСния ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ, округлСния, сравнСния, Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ прСобразования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

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. Если шкала нулСвая ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ, шкала прСдставляСт собой количСство Ρ†ΠΈΡ„Ρ€ справа ΠΎΡ‚ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ. Если шкала ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Π°, Π½Π΅ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа умноТаСтся Π½Π° Π΄Π΅ΡΡΡ‚ΡŒ Π² стСпСни отрицания ΡˆΠΊΠ°Π»Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа, прСдставлСнного

BigDecimal , Ρ€Π°Π²Π½ΠΎ (unscaledValue Γ— 10-scale) .

Класс BigDecimal прСдоставляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, управлСния ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ, округлСния, сравнСния, Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ прСобразования Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ toString toString() обСспСчиваСт каноничСскоС прСдставлСниС BigDecimal .

Класс BigDecimal Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ округлСния. Если Ρ€Π΅ΠΆΠΈΠΌ округлСния Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн, выдаСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ArithmeticException ;Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС вычислСния ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ округлСния ΠΏΡƒΡ‚Π΅ΠΌ прСдоставлСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° MathContext .Π’ любом случаС для управлСния ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ прСдусмотрСно восСмь Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² округлСния . ИспользованиС цСлочислСнных ΠΏΠΎΠ»Π΅ΠΉ Π² этом классС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ROUND_HALF_UP ) для прСдставлСния Ρ€Π΅ΠΆΠΈΠΌΠ° округлСния Π½Π΅ рСкомСндуСтся; вмСсто этого слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния пСрСчислСния пСрСчислСния enum RoundingMode Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RoundingMode.HALF_UP ).

Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MathContext

прСдоставляСтся с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ точности 0 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 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ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ шкала Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°
Addmax(addend.scale(), augend.scale())
Subtractmax(minuend.scale(), subtrahend.scale())
Multiplymultiplier.scale() + multiplicand.scale()
Dividedividend.scale() — divisor.scale()
Square rootradicand. scale()/2

Π­Ρ‚ΠΈ ΡˆΠΊΠ°Π»Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ арифмСтичСскиС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹; Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ дСлСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ больший ΠΌΠ°ΡΡˆΡ‚Π°Π±, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ большС Ρ†ΠΈΡ„Ρ€. НапримСр, 1/320.03125 .

ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ шкала логичСского Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ шкалой для этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Если Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ числовой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн Π² Ρ†ΠΈΡ„Ρ€Π°Ρ… precision , ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ Ρ†ΠΈΡ„Ρ€ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, Π° ΠΌΠ°ΡΡˆΡ‚Π°Π± Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΡ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π΄ΠΎ наимСньшСго ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ фактичСски Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ precision . Если Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн с precision Ρ†ΠΈΡ„Ρ€, возвращаСтся прСдставлСниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° со шкалой, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ шкалС. Π’ частности, Ρ‚ΠΎΡ‡Π½ΠΎ прСдставимоС частноС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно с precision мСньшСй, Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡ†ΠΈΡ„Ρ€, ΡƒΠ΄Π°Π»ΠΈΠ² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Π½ΡƒΠ»ΠΈ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ² ΠΌΠ°ΡΡˆΡ‚Π°Π±. НапримСр, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ‚Ρ€Π΅Ρ… Ρ†ΠΈΡ„Ρ€ с использованиСм Ρ€Π΅ΠΆΠΈΠΌΠ° округлСния ΠΏΠΎΠ»Π° ,
19/100 = 0.19 // integer=19, scale=2
but
21/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. com/en/java/javase/19/docs/api/java.base/java/math/BigDecimal.html


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.

0

Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ страница 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

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. Comparison of Rounding Modes
    1. Half Even
    2. Half Odd
    3. Half Down
    4. Half Up
    5. Down
    6. Up
    7. Half Ceiling
    8. Half Floor
    9. Ceiling
    10. Floor
    11. Unnecessary
  2. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ссылки/сравнСния

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ округлСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ с дСсятичным Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ICU. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ использованиС ICU Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² Β«Π²Π½ΠΈΠ·Β» ΠΈ Β«Π²Π²Π΅Ρ€Ρ…Β» здСсь нСсколько расходится с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ опрСдСлСниями, Π½ΠΎ эквивалСнтно Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Java JDK.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² округлСния

На этой Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ значСния ΠΎΡ‚ -2,0 Π΄ΠΎ 2,0 с шагом 0,1, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ICU ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π΅Π· дСсятичных Ρ†ΠΈΡ„Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. НСкоторыС ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² нСдоступны Π² ICU4J, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ JDK RoundingMode.

9110

. ЗначСния Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ 0,5 (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°) (ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€ΠΎΠΌ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅) ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ блиТайшСй Ρ‡Π΅Ρ‚Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹. Π­Ρ‚ΠΎ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ΠΌ Π±Π°Π½ΠΊΠΈΡ€Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² срСднСм ΠΎΠ½ΠΎ Π½Π΅ содСрТит смСщСния. Π­Ρ‚ΠΎ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой IEEE 754.

Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ привязка ΠΊ Ρ‡Π΅Ρ‚Π½ΠΎΠΌΡƒ, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠ΅ΠΌΡƒ, RN ΠΈΠ»ΠΈ RNE.

Половина Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ

АналогичСн ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΌΡƒ Ρ‡Π΅Ρ‚Π½ΠΎΠΌΡƒ, Π½ΠΎ округляСтся Π΄ΠΎ блиТайшСго Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа, Π° Π½Π΅ Π΄ΠΎ Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ.

Half Down

ЗначСния Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ 0,5 (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°) ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π² ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ сторону (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ мСньшСС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π±Π»ΠΈΠΆΠ΅ ΠΊ Π½ΡƒΠ»ΡŽ).

Половина Π²Π²Π΅Ρ€Ρ…

ЗначСния Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ 0,5 (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°) ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ сторону (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ большСС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΡ‚ нуля).

Π’Π½ΠΈΠ·

ВсС значСния ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ мСньшСго Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ значСния (ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ нуля ΠΈΠ»ΠΈ RZ).

Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ усСчСниС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ дСсятичныС разряды просто ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

Π’Π²Π΅Ρ€Ρ…

ВсС значСния ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ большСго Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ значСния (ΠΎΡ‚ нуля).

Half Ceiling

ЗначСния Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ 0,5 (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°) ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ бСсконСчности (+∞).

Π­Ρ‚ΠΎ Ρ€Π΅ΠΆΠΈΠΌ округлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ECMAScript. Π’ CSS ΠΎΠ½ извСстСн ΠΊΠ°ΠΊ «блиТайший».

Half Floor

ЗначСния Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ 0,5 (ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°) ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ бСсконСчности (-∞).

ΠŸΠΎΡ‚ΠΎΠ»ΠΎΠΊ

ВсС значСния ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Ρ‹ Π΄ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ бСсконСчности (+∞). Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ RI для Ρ€Π°ΡƒΠ½Π΄ΠΎΠ² Π΄ΠΎ бСсконСчности.

Π­Ρ‚Π°ΠΆ

ВсС значСния ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Ρ‹ Π΄ΠΎ минус бСсконСчности (-∞). Π’Π°ΠΊΠΆΠ΅ извСстСн ΠΊΠ°ΠΊ RMI для Ρ€Π°ΡƒΠ½Π΄ΠΎΠ² Π΄ΠΎ минус бСсконСчности.

НСнуТный

Π Π΅ΠΆΠΈΠΌ «НСнуТный» Π½Π΅ выполняСт Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ округлСния, Π° вмСсто этого Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ прСдставлСно Π±Π΅Π· округлСния.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *

# 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. 8
-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. 3
-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. 7
-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. 2
-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. 4 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. 9
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. 5 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. 0
# CEILING FLOOR DOWN UP HALFEVEN Halfodd Halfceliling Halffloor Halfdown Halfup #