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연산, 나눈 나머지 반환