2009-04-18 13 views
5

¿Cómo puedo obtener un valor flotante o real de la división entera? Por ejemplo:Obtener el valor flotante de los números enteros

double result = 30/233; 

rinde cero. Me gustaría el valor con decimales.

¿Cómo puedo formatear para que solo se muestren dos decimales cuando se utiliza con una cadena?

Respuesta

9

Se podía añadir un decimal en el numerador o el denominador:

double result = 30.0/233; 
double result = 30/233.0; 

Encasillamiento cualquiera de los dos números también funciona.

En cuanto a la segunda parte de la pregunta, si utiliza las cadenas de formato de estilo printf, se puede hacer algo como esto:

sprintf(str, "result = %.2f", result); 

Bascially, el" 0.2" representa el número de dígitos a mostrar después de el punto decimal

+0

Gracias. No estaba seguro de cómo usar eso con el char * pero esto funciona igual de bien [NSString stringWithFormat: @ "result =% .2f", result]. – 4thSpace

+0

Sí, eso es lo mejor de Cocoa: hay muchos lugares en los que se utilizan cadenas con formato de estilo de impresión (NSLog es la más destacada de todas, diría yo). – hbw

+1

Solo tenga cuidado con las diferencias sutiles, como el% s que se codifica como la codificación del sistema en lugar de lo que pide la codificación actual y% S es una cadena UTF-16 big-endian en lugar de wchar_t. –

1

Si usted tiene un entero (no constante entera):

int i = 20; 
int j = 220; 
double d = i/(double)j; 
0

Esta es la forma más sencilla de hacer lo que está tratando de lograr, creo ..

double result = 30/233.0f; 

para el desarrollo de iOS (iPhone/iPad/etc) es mejor usar el tipo de flotador.

float result = 30/233.0f; 
Cuestiones relacionadas