본문 바로가기

반응형

double

[JAVA] 이것이 자바다 6장 확인 문제 : Printer 클래스에서 println( ) 메소드 오버로딩하여 선언하기 public class Printer { int println(int value){ System.out.println(value); return value; } boolean println (boolean value) { System.out.println(value); return value; } double println (double value) { System.out.println(value); return value; } String println (String value) { System.out.println(value); return value; } } public class PrinterExample { public static void main(String[] args) { Printer .. 더보기
[Java] 이것이 자바다 3장 확인 문제 7 : 사다리꼴 넓이 구하기 Q7. 다음 코드는 사다리꼴의 넓이를 구하는 코드입니다. 정확히 소수 자릿수가 나올 수 있도록 알맞은 코드를 작성하세요. 이번 문제도 소수 자릿수가 나올 수 있도록 int를 double로 형 변환을 해야 하는 문제이다. 1. int를 double로 형변환을 한다. 2. 사다리꼴 넓이를 구하는 공식 : (윗변+아랫변)*높이/2 만 알면 풀 수 있다. 한번에 double로 형변환하여 계산한 값이다. 이해가 가지 않는 분들을 위하여 하나하나 해보면 52.5가 출력되는 것을 볼 수 있다. 더보기
[Java] 이것이 자바다 3장 확인 문제 6 : 출력 오류 수정하기 Q6. 다음 코드를 실행하면 출력 결과로 "10%입니다."를 기대했는데 "10%가 아닙니다."가 출력되었습니다. 어디에서 잘못 작성된 것일까요? 위 문제를 출력해보면 var2==0.1 이니까(10f/100 때문에) 당연히 true = 10%입니다가 나올거라고 생각이 되는데 출력해보면 그렇지 않은 것을 볼 수 있다. 이것은 float와 double 타입은 과학과 공학 계산용으로 설계되었으며, 이진 부동소수점 연산에 주로 쓰인다. 이때, 넓은 범위의 수를 빠르게 정밀한 근사치로 계산하도록 설계되어있기 때문에 정확한 결과를 내기는 어렵기 때문이다. 그럼 이걸 어떻게 풀어야할까? 이건 여러가지의 방법이 있겠지만 간단한 두가지의 방법으로 해보려고 한다. 1. double형으로 형 변환하기. 간단하게 float을 .. 더보기
[Java] 이것이 자바다 2장 확인 문제 4 : 연산 수행 후 int형으로 변환하기 우선 여기서는 result 를 출력했을때 나와야하는 값은 '9'인데, '9'를 만들기 위하여 어떻게 + 연산을 해야 할지를 먼저 생각해봐야할것 같습니다. 일반적으로 (컴퓨터가 아닌 그냥 사칙연산을 사용하면) ' 2 + 1.8 + 2.8 + 3.9 = 10.2 ' 가 됩니다. 그럼 여기서 9를 만들려면 어떻게 해야 할까요? '2 + 1.8 + 2.8 = 6.3' 이 되니까 덧셈을 한 후 뒤 소수점을 버리고 정수를 만든 후, 남은 3.9를 정수를 만들어 더하면 될 것 같습니다. 우선 long, float, double을 전부 int로 묶어 + 연산을 해줍니다. 그리고 string 값을 double로 형 변환 합니다. (실수라서 double로 바꾸어 보았어요.) 그리고 원래 하려고 했던 것 처럼 int로 변환.. 더보기
[Java] 이것이 자바다 2장 확인 문제 3 : 실수 덧셈 연산 후 소수점 이하 자리 버리기 먼저 연산을 한 후 소수점 이하 자리를 버리는 것이라서 double을 int로 형 변환 하기 전에 먼저 계산을 합니다. int는 정수(소수점X), double은 실수(소수점O)을 사용하기 때문에 잘 기억해야 합니다. 계산 후 int로 형 변환을 해주면 int가 소수점 자리는 필요없다고 던져버리면서 '6'이 되게 됩니다. 만약 int가 아니고 double로 계산을 하게 되면 어떻게 될까요? 아까 말씀드린것과 같이 double은 소수점을 사용하기 때문에 출력값에도 소수점이 나오게 되어있죠. 연산을 하기 전 먼저 int로 변환을 하게 되면 var1 = 3.5가 소수점을 날려버리면서 3이 되고, var2 = 2.7가 소수점을 날려버리면서 2가 되어 답이 5가 되어 조금 달라지게 되겠죠? 순서를 잘 살피기! 더보기
[Java] 이것이 자바다 2장 확인 문제 5 : 문자열을 기본 타입으로 변환하기 byte, int, float, double 문자열 기본 타입으로 변환하기. 1.byte Byte.을 치면 ParseByte(String.s) : byte - Byte 라는 것이 나온다. 그 곳을 선택하고 괄호 안에 원하는 값("10")을 넣어주면 변환이 된다. 변환이 잘 되었는지 확인하기 위하여 출력문 System.out.println(sysout+Ctrl+space)를 이용하여 출력해본다. '10'이라는 값이 나온것을 확인할 수 있다. 2. int int는 byte와 다르게 Integer를 쳐 주어야 한다. Integer.을 치면 ParseIn(String.s) : Int - Integer 라는 것이 나온다. 선택 후 원하는 값("1000")을 넣은 후 출력해보면 원하는 값이 출력된 것을 볼 수 있다.. 더보기

반응형