- [JAVA] 문자열 <-> 정수,소수 변환 integer.parseInt(); Double.parseDouble();2023년 10월 29일
- 주사위 clice
- 작성자
- 2023.10.29.:08
반응형🎲 parseInt() 란?
parseInt()는 문자열 String타입의 숫자를 int타입으로 변환해주는 메소드이다.
예를 들어 String stringDate="20231029" //2023년 10월 29일
이라고 입력 했으면
이 날짜를 정수로 연산하고 싶을 수 있다
현재는 날짜 변수가 정수가 아닌 '문자열' 이기 때문에 사칙연산을 할 수 없다
이때 필요한게 Integer.parseInt();이다
예를 들어보자
Stirng stringDate="20231029"; //문자열 날짜 stringDate int intDate = Integer.parseInt(stringDate); //문자열을 정수타입 intDate으로 바꿈 System.out.println(++intDate); //1 증가
🎲 정수말고 다른 타입으로도 바꾸기
parse()을 통한 문자열->숫자 변환은
int뿐만 아니라 byte, short, long, float, double 등 숫자와 관련된 타입은 전부 가능하다.
Byte.parseByte();
Short.parseShort();
Integer.parseInt();
Long.parseLong();
Float.parseFloat();
Double.parseDouble();
로 존재하고 있다.
예를 들어보자
🎲 예제
태양열, 풍력, 지열 에너지를 입력 받고
에너지의 총합, 각각이 차지하는 비율을 출력하고 싶다
100 200 300
-> 에너지의 총합은 600입니다
태양열: 16.67 % 풍력 33.33 % 지열 50.00%🎲 알고리즘
100 200 300
-> 에너지의 총합은 600입니다우선 입력은 문자열타입으로 하고, double형으로 변환한다
그리고 에너지의 총합은 정수로 형변환 한다
String stringSolar =args[0]; String stringWind= args[1]; String stringGeo=args[2]; double Solar=Double.parseDouble(stringSolar); double Wind=Double.parseDouble(stringWind); double Geo=Double.parseDouble(stringGeo); int sum=(int)(Solar+Wind+Geo); System.out.println("->총 에너지 사용량은 "+sum+"입니다");
그리고 각각이 차지하는 비율은 백분율 연산을 통해 구한다
소수점 둘째자리까지 나타내고 싶으니까
%.2f를 사용한다
이때 주의해야 할 점은 println 이 아니라 printf를 사용해야 한다
double solarPercentage = Solar / sum * 100.0; double windPercentage = Wind / sum * 100.0; double geoPercentage = Geo / sum * 100.0; // 소수점 7자리까지 나타내기 System.out.printf("태양광 %.2f %% 풍력 %.2f %% 지열 %.2f%% %n", solarPercentage, windPercentage, geoPercentage);
🎲 최종 코드
public class Energy { public static void main(String[] args) { if (args == null || args.length < 3) { System.out.println("Error"); System.exit(0); } String stringSolar =args[0]; String stringWind= args[1]; String stringGeo=args[2]; double Solar=Double.parseDouble(stringSolar); double Wind=Double.parseDouble(stringWind); double Geo=Double.parseDouble(stringGeo); int sum=(int)(Solar+Wind+Geo); System.out.println("->총 에너지 사용량은 "+sum+"입니다"); double solarPercentage = Solar / sum * 100.0; double windPercentage = Wind / sum * 100.0; double geoPercentage = Geo / sum * 100.0; // 소수점 2자리까지 나타내기 System.out.printf("태양광 %.2f %% 풍력 %.2f %% 지열 %.2f%% %n", solarPercentage, windPercentage, geoPercentage); } }
결과 화면
*참고로 입력은 `Command Line Arguments`를 이용해 입력 받았다
· `Scanner`, `BufferedReader' 사용 안 함반응형'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA if조건문과 boolean 예제 (1) 2023.10.30 JAVA sqrt 함수 직접 구현하기 (0) 2023.10.30 JAVA 에러: reached end of file while parsing (0) 2023.10.30 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)