Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Web Service Architecture
- 프로그래머스 SQL
- beautifulsoup
- java
- WAS란
- 파이썬 가상환경
- spring
- 파이썬
- JavaScript Obejct Notation
- 즐겨찾기가 가장 많은 식당 정보 출력하기
- BigDecimal
- 변동성 돌파전략
- 프로그래머스
- 단순 반복 자동화
- 리눅스
- 트레이딩 봇 만들기
- JSON 형식
- 리눅스 rwx
- 파이썬 주식
- pybithumb
- 빗썸 API 사용
- 리눅스 777
- JSON특징
- 와스 웹서버의 차이
- string format
- WAS WebServer 차이
- 프로그래머스 소수
- 오라클
- Web Server란
- Python
Archives
- Today
- Total
IT 개발자_S
JAVA double 왜 뺄셈이 안될까? 해답은 BigDecimal 본문
반응형
● Java Double 형에 대하여 이해한다
● 컴퓨터의 데이터 이해 및 해결방법 BigDecimal 이해
오늘의 글에서는 데이터 자료형에 대한 중요성에 대하여 알아보는 시간을 가지겠습니다.
Java를 통한 프로그래밍 구현을 위해 필수적인 역량 중 하나는 적절한 데이터의 형 정의 및 구현 역량이다
데이터 형을 제대로 선언하지 않으면 계산로직을 만들다가 원하지 않는 결과값이 나와 금전 사고가 일어날 수 있기 때문이다.
다음과 같은 예를 들어보자.
입력값 102.5 입력이 되었고 이에 대한 퍼센트 값을 구해서 1을 빼는 프로그래밍을 한다고 가정하자
package project;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double d = (102.5 /100) -1;
System.out.println(d);
}
}
해당 소스의 결과 값은 0.25가 아닌 0.24999999가 나온것을 알수 있다.
왜 0.25가 아닌 0.249999999 근사값이 나올까?
컴퓨터는 0과 1로 이루어진 존재이다
실수를 표현하는 것은 0과 1로 존재하는 컴퓨터는 어려움이 있다.
애초부터 실수형 데이터는 컴퓨터 입장에서는 0 과 1 사이의 근사값을 의미하는 숫자들이다.
이에 double 형 선언도 실수값 즉 근사치 값으로 표현하기 때문에 위와 같은 문제가 발생한다.
그렇기 때문에 단순히 실수형이 있다고 double 형을 선언하게 되면 해당 문제가 발생하여 금전 사고가 발생할 수 있다.
이를 해결하기 위해서는 BigDecimal를 이용하면 해결 할 수 있다.
BigDecimal 의 사용 방법은 해당 글을 참조하면 도움이 될 것 같습니다.
반응형
'IT > JAVA' 카테고리의 다른 글
JAVA Length size의 차이 (0) | 2022.02.07 |
---|---|
소수점 곱할때 계산하는 방법 -String .format (0) | 2020.12.09 |
클래스 객체 인스턴스 왜 항상 헷갈릴까 (0) | 2020.10.17 |
JAVA String형 Int 형 변환 (0) | 2020.10.08 |
LinkedList - java (0) | 2020.02.11 |
Comments