2012-04-05 8 views
6

Tengo dos valores de flotación, 'a' y 'b'.cómo calcular el recordatorio de flotación para los dos valores de flotación

Necesito calcular el recordatorio de estos dos valores flotantes, y debe ser un valor flotante.

Vamos

float a = 1.1; 
float b = 0.5; 

Así el resto 'r' debe ser el valor exacto

es decir, r = a% b

r = 1,1% 0,5

0.5) 1.1 (2 
     1.0 
    ______ 

     0.1 

    r = 0.1 

Pero causa un error de operando inválido para valores flotantes.

¿Cómo hacerlo?

+3

¿Qué idioma? – Jon

+1

¿Por qué es esto para java, C++, objetivo-cy AND? ¿Lo estás usando en 4 proyectos? – RvdK

+0

No se parece a Java, ya que '1.1% 0.5' es legal en Java. (Y no importa lo que haga, no obtendrá un valor "preciso". Para empezar, ni siquiera tendrá un valor preciso para '1.1', ya que' 1.1' no se puede representar exactamente en la mayoría de las máquinas flotantes punto.) –

Respuesta

13

En C, C++ y Objective-C que sería fmod.

1

¿lo declaraste?

float r; 

que tiene que hacer antes de que usted podría hacer ningún cálculo

por lo

float r; 

float a = 1.1; 
float b = 0.5; 

r = a % b; 
+0

En C (y C++?) No es válido utilizar números de coma flotante para operandos del operador '%'. – JeremyP

5

uso HOQF()

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

No te tforget la -lm bandera de liker si estás en linux/unix/mac-osx /.

para obtener más información

$man fmod 
2

probar

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

Espero que esto ayude.

+0

@Ranga sí, por supuesto, esto también funcionará en Java. Pero no puedes usar fmod() en java. –

+1

% trabajando con enteros solamente (int)% (int) en C o C++ –

Cuestiones relacionadas