2012-04-05 2 views
6

두 개의 float 값 'a'와 'b'가 있습니다.두 개의 float 값에 대한 float 리마인더 계산 방법

두 개의 float 값에 대한 알림을 계산해야하며 float 값이어야합니다.

float a = 1.1; 
float b = 0.5; 

그래서 나머지 'R'은 정확한 값이어야하자

즉, R = A % B를

R = 1.1 %, 0.5

0.5) 1.1 (2 
     1.0 
    ______ 

     0.1 

    r = 0.1 

그러나 실수로 float 값에 대한 잘못된 피연산자가 발생합니다.

어떻게 만드시겠습니까?

+3

어떤 언어입니까? – Jon

+1

왜 이것이 java, C++, objective-c 및 c에 해당합니까? 당신은 4 개의 프로젝트에서 그것을 사용하고 있습니까? – RvdK

+0

Java에서는'1.1 % 0.5'가 합법적이므로 Java와 모양이 다릅니다. (그리고 그가하는 일과 상관없이, 그는 "정확한"가치를 얻지 못할 것입니다. 우선, 1.1에 대한 정확한 값조차 갖지 않을 것입니다. 왜냐하면 1.1은 대부분의 기계 부동에서 정확하게 표현 될 수 없기 때문입니다 포인트.) –

답변

13

C에서 C++ 및 Objective-C는 fmod입니다.

1

신고하셨습니까?

float r; 

당신은 당신이) (어떤 계산을 그렇게

float r; 

float a = 1.1; 
float b = 0.5; 

r = a % b; 
+0

C (및 C++?)에서는'% '연산자의 피연산자에 부동 소수점 숫자를 사용하는 것은 유효하지 않습니다. – JeremyP

5

사용 FMOD를

을 할 수 전에

#include <math.h> 
double x,y,z; 
x = 1.1; 
y = 0.5; 
z = fmod(x,y) 

가 -lm을 tforget하지 마십시오 그렇게해야 liker 플래그가있는 경우 linux/unix/mac-osx /에 있습니다. 더 많은 정보

$man fmod 
2

에 대한

이 도움이

float x = (float)(1.1 % 0.5); 
NSLog(@"%f",x); 

희망을 봅니다.

+0

@Ranga 당연히 이것도 자바에서 작동합니다. 하지만 java에서는 fmod()를 사용할 수 없습니다. –

+1

C 또는 C++에서 정수 만 사용하는 % (int) % (int) –

관련 문제