double을 가장 가까운 정수 값으로 어떻게 변환 할 수 있습니까?
double을 가장 가까운 int로 어떻게 변환합니까?
Math.round()
와 함께 사용 가능MidpointRounding.AwayFromZero
예 :
Math.Round(1.2) ==> 1
Math.Round(1.5) ==> 2
Math.Round(2.5) ==> 2
Math.Round(2.5, MidpointRounding.AwayFromZero) ==> 3
double d = 1.234;
int i = Convert.ToInt32(d);
다음과 같이 반올림을 처리합니다.
가장 가까운 32 비트 부호있는 정수로 반올림됩니다. 값이 두 정수 사이의 중간이면 짝수가 리턴됩니다. 즉, 4.5는 4로 변환되고 5.5는 6으로 변환됩니다.
기능을 사용할 수도 있습니다.
//Works with negative numbers now
static int MyRound(double d) {
if (d < 0) {
return (int)(d - 0.5);
}
return (int)(d + 0.5);
}
아키텍처에 따라 몇 배 더 빠릅니다.
double d;
int rounded = (int)Math.Round(d);
나는이 질문이 오래되었다는 것을 알고 있지만 비슷한 질문에 대한 답을 찾기 위해 그 질문을 발견했습니다. 나는 내가받은 매우 유용한 팁을 공유 할 것이라고 생각했다.
int로 변환 할 때 다운 캐스트하기 전에 값에 0.5를 추가하십시오. int 로의 다운 캐스팅은 항상 더 낮은 숫자 (예 : (int) 1.7 = 1)로 떨어 지므로 숫자가 .5 이상인 경우 .5를 추가하면 다음 숫자로 이동하고 int 로의 다운 캐스트는 올바른 값을 반환해야합니다 . (예 : (int) (1.8 + .5) = 2)
이 답변이 누구에게나 도움이되기를 바랍니다.
Unity의 경우 Mathf.RoundToInt를 사용 하십시오 .
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Start()
{
// Prints 10
Debug.Log(Mathf.RoundToInt(10.0f));
// Prints 10
Debug.Log(Mathf.RoundToInt(10.2f));
// Prints 11
Debug.Log(Mathf.RoundToInt(10.7f));
// Prints 10
Debug.Log(Mathf.RoundToInt(10.5f));
// Prints 12
Debug.Log(Mathf.RoundToInt(11.5f));
// Prints -10
Debug.Log(Mathf.RoundToInt(-10.0f));
// Prints -10
Debug.Log(Mathf.RoundToInt(-10.2f));
// Prints -11
Debug.Log(Mathf.RoundToInt(-10.7f));
// Prints -10
Debug.Log(Mathf.RoundToInt(-10.5f));
// Prints -12
Debug.Log(Mathf.RoundToInt(-11.5f));
}
}
public static int RoundToInt(float f) { return (int)Math.Round(f); }
Int 버튼을 사용하는 과학 용 계산기를 개발 중입니다. 다음은 간단하고 안정적인 솔루션이라는 것을 알았습니다.
double dblInteger;
if( dblNumber < 0 )
dblInteger = Math.Ceiling(dblNumber);
else
dblInteger = Math.Floor(dblNumber);
Math.Round는 때때로 예기치 않은 또는 바람직하지 않은 결과를 생성하고, 캐스트 또는 Convert.ToInt ...를 통한 정수로의 명시 적 변환은 종종 고정밀도 숫자에 대해 잘못된 값을 생성합니다. 위의 방법은 항상 작동하는 것 같습니다.
참고URL : https://stackoverflow.com/questions/633335/how-might-i-convert-a-double-to-the-nearest-integer-value
'Programing' 카테고리의 다른 글
목록의 키와 기본값이 0으로 된 사전을 어떻게 만들 수 있습니까? (0) | 2020.06.27 |
---|---|
비동기 네트워크 요청으로 신속한 루프 실행이 완료 될 때까지 기다립니다. (0) | 2020.06.27 |
요소가 포커스를 잃을 때 JavaScript 실행 (0) | 2020.06.27 |
참조가 아닌 값으로 파이썬리스트 (0) | 2020.06.27 |
파일에서 문자열을 nodejs로 교체 (0) | 2020.06.27 |