Operacje matematyczne w ScriptCode
Operacje matematyczne w ScriptCode
Zalecane jest, aby wszystkie operacje matematyczne w scriptCode wykonywać poprzez obiekt BigDecimal.
Interfejs API
big-decimal.interface.ts
big-decimal.interface.tsBigDecimal
interface BigDecimal {
valueOf(value: string | number | BigDecimal): BigDecimal
add(augend: string | number | BigDecimal): BigDecimal
subtract(subtrahend: string | number | BigDecimal): BigDecimal
multiply(multiplicand: string | number | BigDecimal): BigDecimal
divide(divisor: string | number | BigDecimal): BigDecimal
divide(divisor: string | number | BigDecimal, roundingMode: string): BigDecimal
divide(divisor: string | number | BigDecimal, scale: number): BigDecimal
divide(divisor: string | number | BigDecimal, scale: number, roundingMode: string): BigDecimal
setScale(newScale: number): BigDecimal
setScale(newScale: number, roudingMode: string): BigDecimal
equals(equated: string | number | BigDecimal): boolean
compareTo(compared: string | number | BigDecimal): int
}decimal-format.interface.ts
decimal-format.interface.tsrounding-mode.interface.ts
rounding-mode.interface.tsdecimal-format-symbols.interface.ts
decimal-format-symbols.interface.tsrandom.interface.ts
random.interface.tsBigDecimal
Tworzenie obiektu
Obiekt BigDecimal jest niezmienny (immutable).
Operacje takie jak add() nie zmieniają wartości, wymagają przypisania wyniku do zmiennej.
Operacje matematyczne
Dodawanie
Odejmowanie
Dzielenie
Mnożenie
Ustawienie skali
Porównanie i równość
DecimalFormat
Klasa do formatowania liczb dziesiętnych w różnych językach. Dokumentacja: DecimalFormat (Java)
Przykład
Patterns
0
Zastępca dla cyfry
#
Zastępca dla cyfry (0 pomijane)
,
Separator dziesiętny
%
Mnoży przez 100 i wyświetla jako procent
E
Notacja naukowa
Zaokrąglanie liczb (RoundingMode)
RoundingMode)HALF_UP
Zaokrągla w górę, jeśli część dziesiętna ≥ 0.5
CEILING
Zawsze w górę do najbliższej liczby całkowitej
DOWN
Zawsze w dół
FLOOR
W dół do najbliższej liczby całkowitej
HALF_DOWN
W dół jeśli < 0.5
HALF_EVEN
Zaokrąglenie "bankierskie" (do liczby parzystej)
Preferowane skale wyników
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/math/BigDecimal.html
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.scale()/2
Random
Generowanie identyfikatorów UUID (wersja 4):
Last updated
Was this helpful?
