WebSquare
[WebSquare] 웹스퀘어 bigDecimal 빅데시멀 사용하기
오은이
2024. 9. 10. 15:56
WebSquare.bigDecimal
- 정적 클래스: WebSquare 자체에서 제공하는 전역적인 정적 클래스
- 직접 호출: 일반적으로 WebSquare가 제공하는 내장 함수로, 해당 함수를 직접 호출하여 사용
- 용도: 주로 전역적으로 사용되며, WebSquare 화면 또는 함수 내에서 바로 접근 가능하게 설정
- 페이지나 컴포넌트에 관계없이 전역적으로 사용 가능
웹스퀘어 공식 예제1
var a = WebSquare.bigDecimal("123456789012345678901234567890");
var b = WebSquare.bigDecimal("111111111111111111111111111111");
var c = WebSquare.bigDecimal("678901234567890123456789012345");
var d = WebSquare.bigDecimal("345678934567893456789345678934");
var ret = WebSquare.bigDecimal.calc("a + b c + (d - a) / (c + d)");
input1.setValue(ret);
웹스퀘어 공식 예제2
var a = WebSquare.bigDecimal("1234");
var b = 3000;
var ret = WebSquare.bigDecimal.calc ("a+b*b-b/(a+b)");
Number + bigDecimal 연산도 가능함. 단 Number는 17자리 이하여야 함.
웹스퀘어 공식 예제3
var a = "abcd"; // NaN
var b = WebSquare.bigDecimal("200");
var ret = WebSquare.bigDecimal.calc("a + b");
input2.setValue(ret);
연산 결과는 NaN 데이터를 나타내는 bigDecimal 타입. 숫자 타입이 아닌 데이터와 연산하면 전부 NaN이 된다.
$p.bigDecimal
- 동적 함수: $p 객체는 WebSquare에서 특정 페이지나 컴포넌트에 바인딩된 함수
- 컨텍스트 의존적: 특정 페이지나 스코프 내에서 $p 객체를 통해 호출해야 하며, 페이지나 스코프에 따라 다르게 동작
- 용도: 해당 페이지나 컨텍스트에 종속된 빅데시멀 연산에 사용되며, 페이지 간 상호작용이 있을 때 자주 사용
- 해당 페이지나 컴포넌트의 컨텍스트 내에서만 작동하므로, 전역 변수로 직접 사용 불가
scwin 객체에 대입하는 방법
scwin.num1 = $p.bigDecimal("123456789012345678901234567890");
scwin.num2 = $p.bigDecimal("1111111111111111111111111111111");
scwin.num3 = $p.bigDecimal("678901234567890123456789012345");
scwin.num4 = $p.bigDecimal("345678901234567890123456789012");
var ret = $p.bigDecimal.calc("scwin.num1 + (scwin.num2 * scwin.num3) - scwin.num3 / (scwin.num1 + scwin.num2)");
변수 선언 후 각각의 변수가 가지고 있는 연산 함수들로 계산하는 방법
var a = $p.bigDecimal("111111111111111111");
var b = $p.bigDecimal("2222222222222222");
var result = a.plus(b);
input2.setValue(result);
bigDecimal 연산함수 종류
연산함수 종류 | |
divide(bigDecimal) | 나눗셈 |
minus(bigDecimal) | 뺄셈 |
plus(bigDecimal) | 덧셈 |
pow(bigDecimal) | 제곱 |
times(bigDecimal) | 곱셈 |
mod(bigDecimal) | mod연산, 나눈 나머지 반환 |