ceil(), round(), floor() 함수의 실행 속도 - 페이지 2 12345678 새 코멘트 Nikolai Semko 2017.08.25 02:14 #11 pavlick_ : 왜 오래 캐스팅하지 않습니까? 오버플로가 가능하지만 int를 오버플로하는 것이 훨씬 쉽습니다. 물론 필요한 경우 길게 할 수도 있습니다. Dmitry Fedoseev 2017.08.25 02:27 #12 y= ceil (x); -> y=( int )(x+ 1 ); x=3; y=3; y=4; pavlick_ 2017.08.25 02:29 #13 Nikolai Semko : 물론 필요한 경우 길게 할 수도 있습니다. 따라서 방법을 광고하면 어리석게 복사됩니다. 일반적으로 검사 없이는 다음과 같이 캐스팅할 수 없습니다. 이것은 UB입니다. 실수 부동 유형의 유한 값이 _Bool이 아닌 정수 유형으로 변환되면 소수 부분이 삭제됩니다(즉, 값이 0으로 잘림). 정수 형식으로 정수 부분의 값을 표현할 수 없는 경우 동작이 정의되지 않습니다. 보증금이 병합되거나 다른 일을 할 수도 있습니다)) Nikolai Semko 2017.08.25 02:41 #14 pavlick_ : 따라서 방법을 광고하면 어리석게 복사됩니다. 일반적으로 검사 없이는 다음과 같이 캐스팅할 수 없습니다. 이것은 UB입니다. 보증금이 병합되거나 다른 일을 할 수도 있습니다.)) 나는 아무것도 광고하지 않습니다. 아이디어를 공유합니다. 그것이 바로 이 포럼과 토론을 위한 것입니다. Nikolai Semko 2017.08.25 02:42 #15 Dmitry Fedoseev : x=3; y=3; y=4; 바로 그거죠! spsb. 천장으로 무엇을 할 수 있는지 생각해야합니다. Nikolai Semko 2017.08.25 03:04 #16 y= ceil (x); -> y=( int )(x+ 1 ); 드미트리 페도세예프 : x=3; y=3; y=4; 옵션으로 아름답지는 않지만 속도는 동일합니다. y= ceil (x); -> y=( int )(x+ 0.999999999999999 ); #define _ceil(x) ( int )((x)+ 0.999999999999999 ) double x= 3 ; int y=_ceil(x); Alexey Navoykov 2017.08.25 05:19 #17 Nikolai Semko : 옵션으로 아름답지는 않지만 속도는 동일합니다. 그러면 x + 1 - DBL_MIN 이 더 좋을 것입니다. x + 1 - DBL_EPSILON. 나는 테스트하지 않았습니다. 시도하십시오. 음수는 어떻습니까? 결국 천정과 바닥이 달라야 합니다. Nikolai Semko 2017.08.25 14:44 #18 Alexey Navoykov : 그러면 x + 1 - DBL_MIN 이 더 좋을 것입니다. x + 1 - DBL_EPSILON. 나는 테스트하지 않았습니다. 시도하십시오. 음수는 어떻습니까? 결국 천정과 바닥이 달라야 합니다. DBL_MIN 및 DBL_EPSILON이 작동하지 않습니다. 너무 작습니다. 아마도 0.9999999999999999를 떠나는 것이 합리적 일 것입니다 (16 아홉은 최대 소수점 자리의 두 배입니다) 네, 맞습니다. 음수에는 다른 알고리즘이 있어야 합니다. 고맙습니다! 첫글에 추가하겠습니다. 누가 상관 - 음수로 문제를 해결하는 방법에 대해 생각할 수 있습니다. 나는 개인적으로 관심이 없다, t. 내 모든 작업에는 양수가 포함됩니다. A100 2017.08.25 14:59 #19 Nikolai Semko : 아마도 0.9999999999999999를 떠나는 것이 합리적 일 것입니다 (16 아홉은 최대 소수점 자리의 두 배입니다) void OnStart () { Print (( int )( 3.0 + 0.9999999999999999 )); } 결과를 확인 했습니까? Nikolai Semko 2017.08.25 15:03 #20 A100 : void OnStart () { Print ( ( int )( 3 + 0.9999999999999999 )); } 예, 하지만 다음과 같은 경우: x= 3 ; int Y=( int ) ceil (x); Print (Y); Y=( int )(x+ 0.999999999999999 ); Print (Y); 모든 것이 정상입니다. 컴파일러가 궁금합니다. :)) 12345678 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
왜 오래 캐스팅하지 않습니까? 오버플로가 가능하지만 int를 오버플로하는 것이 훨씬 쉽습니다.
물론 필요한 경우 길게 할 수도 있습니다.
x=3;
y=3; y=4;
물론 필요한 경우 길게 할 수도 있습니다.
따라서 방법을 광고하면 어리석게 복사됩니다. 일반적으로 검사 없이는 다음과 같이 캐스팅할 수 없습니다. 이것은 UB입니다.
따라서 방법을 광고하면 어리석게 복사됩니다. 일반적으로 검사 없이는 다음과 같이 캐스팅할 수 없습니다. 이것은 UB입니다.
보증금이 병합되거나 다른 일을 할 수도 있습니다.))나는 아무것도 광고하지 않습니다. 아이디어를 공유합니다. 그것이 바로 이 포럼과 토론을 위한 것입니다.
x=3;
y=3; y=4;
바로 그거죠! spsb. 천장으로 무엇을 할 수 있는지 생각해야합니다.
드미트리 페도세예프 :
x=3;
y=3; y=4;
옵션으로 아름답지는 않지만 속도는 동일합니다.
옵션으로 아름답지는 않지만 속도는 동일합니다.
그러면 x + 1 - DBL_MIN 이 더 좋을 것입니다. x + 1 - DBL_EPSILON. 나는 테스트하지 않았습니다. 시도하십시오.
음수는 어떻습니까? 결국 천정과 바닥이 달라야 합니다.
그러면 x + 1 - DBL_MIN 이 더 좋을 것입니다. x + 1 - DBL_EPSILON. 나는 테스트하지 않았습니다. 시도하십시오.
음수는 어떻습니까? 결국 천정과 바닥이 달라야 합니다.
DBL_MIN 및 DBL_EPSILON이 작동하지 않습니다. 너무 작습니다. 아마도 0.9999999999999999를 떠나는 것이 합리적 일 것입니다 (16 아홉은 최대 소수점 자리의 두 배입니다)
네, 맞습니다. 음수에는 다른 알고리즘이 있어야 합니다. 고맙습니다! 첫글에 추가하겠습니다.
누가 상관 - 음수로 문제를 해결하는 방법에 대해 생각할 수 있습니다. 나는 개인적으로 관심이 없다, t. 내 모든 작업에는 양수가 포함됩니다.
아마도 0.9999999999999999를 떠나는 것이 합리적 일 것입니다 (16 아홉은 최대 소수점 자리의 두 배입니다)
A100 :
예, 하지만 다음과 같은 경우:
모든 것이 정상입니다. 컴파일러가 궁금합니다. :))