Java에서 플로트를 int로 변환하는 방법
float를 int로 변환하기 위해 다음 행을 사용했지만, 원하는 만큼 정확하지 않습니다.
float a=8.61f;
int b;
b=(int)a;
결과는 다음과 같습니다.8
(그것은,9
)
언제a = -7.65f
결과는 다음과 같습니다.-7
(그것은,-8
)
어떻게 하면 좋을까요?
사용.Math.round()
플로트를 가장 가까운 정수로 반올림합니다.
실제로 원하는 결과에 따라 float를 int로 다운다운하는 방법이 다릅니다(int의 경우).i
,흘러가다f
)
round(지정된 플로트에 가장 가까운 정수)
i = Math.round(f); f = 2.0 -> i = 2 ; f = 2.22 -> i = 2 ; f = 2.68 -> i = 3 f = -2.0 -> i = -2 ; f = -2.22 -> i = -2 ; f = -2.68 -> i = -3
주의: 이는 계약에 따라
(int) Math.floor(f + 0.5f)
잘라내기(즉, 모든 것을 소수점 뒤에 놓는다)
i = (int) f; f = 2.0 -> i = 2 ; f = 2.22 -> i = 2 ; f = 2.68 -> i = 2 f = -2.0 -> i = -2 ; f = -2.22 -> i = -2 ; f = -2.68 -> i = -2
ceil/floor(소수 부분이 있는 경우 항상 지정된 값보다 크거나 작은 정수)
i = (int) Math.ceil(f); f = 2.0 -> i = 2 ; f = 2.22 -> i = 3 ; f = 2.68 -> i = 3 f = -2.0 -> i = -2 ; f = -2.22 -> i = -2 ; f = -2.68 -> i = -2 i = (int) Math.floor(f); f = 2.0 -> i = 2 ; f = 2.22 -> i = 2 ; f = 2.68 -> i = 2 f = -2.0 -> i = -2 ; f = -2.22 -> i = -3 ; f = -2.68 -> i = -3
양수 값을 반올림하려면(int)(f + 0.5)
(정확히 다음과 같이 동작합니다).Math.Round
(의사에 따라) 그 경우.
를 사용할 수도 있습니다.Math.rint(f)
가장 가까운 짝수 정수로 반올림을 합니다.분수 부분이 0.5와 완전히 같은 많은 플로트를 다루고, 집합의 평균을 유지하고 싶다면(IEEE 반올림 문제 있음), 짝수가 홀수보다 더 일반적인 다른 편향을 도입할 것입니다.
봐
http://mindprod.com/jgloss/round.html
http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html
자세한 내용과 예를 참조하십시오.
Math.round(value)
값을 가장 가까운 정수로 반올림합니다.
사용하다
1) b=(int)(Math.round(a));
2) a=Math.round(a);
b=(int)a;
또한 Math.round는 정수값을 반환하므로 타입캐스트를 할 필요가 없습니다.
int b = Math.round(float a);
사용하다Math.round(value)
그런 다음 입력 후 정수로 지정합니다.
float a = 8.61f;
int b = (int)Math.round(a);
Math.round()로 충분합니다.
int b = Math.round(a)
이것으로 작업이 완료됩니다.
인스턴스화Float
통과시킴으로써 반대하다float
컨스트럭터에게 primitive한 후,Float
를 반환하기 위해 작성한 오브젝트int
원시적인
설명. |
---|
number wrapper 클래스가 확장되기 때문에java.lang.Number class 를 사용하면 임의의 번호 래퍼 객체가 임의의 다른 번호의 프리미티브타입을 반환하도록 할 수 있습니다..<type>Value() 방법. |
순서
- Float 객체를 만듭니다.
- 를 사용합니다.
.intValue()
원본을 반환하는 방법int
.
예
Float mFloat = Float.valueOf(8.65f);
int i = mFloat.intValue();
부동 값을 정수 값으로 변환하려면 부동 값을 반올림하는 방법에 따라 여러 가지 방법이 있습니다.
첫 번째 방법은 플로트 값을 반올림하는 것입니다.
float myFloat = 3.14f;
int myInteger = (int)myFloat;
myFloat 값이 4에 가깝더라도 이 코드의 출력은 3이 됩니다.
두 번째 방법은 float 값을 반올림하는 것입니다.
float myFloat = 3.14f;
int myInteger = Math.ceil(myFloat);
반올림 모드는 항상 가장 높은 값을 찾기 때문에 이 코드의 출력은 4가 됩니다.
저로서는 (int) (a +.5) // a는 플로트입니다.반올림된 값을 반환합니다.
Java Math.round() 유형에 의존하지 않음
언급URL : https://stackoverflow.com/questions/1295424/how-to-convert-float-to-int-with-java
'programing' 카테고리의 다른 글
vue i18n - javascript 오브젝트로 사용(템플릿 내가 아님) (0) | 2022.08.27 |
---|---|
Java 런타임 퍼포먼스와 네이티브 C/C++ 코드 비교 (0) | 2022.08.27 |
상위 컴포넌트의 소품 접근 방법 확인 - 포장지가 아닌 수입업체 (0) | 2022.08.27 |
v-model 및 데이터베이스 바인딩 없이 입력에 값 할당 (0) | 2022.08.27 |
Eclipse는 일치하는 변수를 강조 표시하지 않습니다. (0) | 2022.08.27 |