objective-c ios floating-point rounding number-rounding

objective c - iOS alrededor de un flotador



objective-c floating-point (2)

Tengo un número de coma flotante que tiene más dígitos decimales, por ejemplo:

float fRes = 10.0 / 3.0;

en realidad, el valor de fRes es 3.3333333333333 es posible establecerlo, por ejemplo, 2 dígitos decimales:

float fRes = 10.0 / 3.0; // fRes is 3.333333333333333333333333 float fResOk = FuncRound( fRes, 2 ); // fResOk is 3.33

gracias por adelantado


No sé dónde está usando este número redondeado, pero solo debe redondear su valor cuando se lo muestra al usuario, hay formas de cadenas de formato basadas en C para redondear números de punto flotante, por ejemplo

[NSString stringWithFormat:@"%.2f", value];

Como es posible que ya hayas leído, el número de punto flotante son aproximaciones de números reales, por lo que al hacer fResOk = roundf( fRes*100.0)/100.0; es posible que no le dé 3.33, pero un número que es tan cercano como puede obtener con un número de punto flotante a 3.33.


Suponiendo que está buscando la función correcta para redondear a un número determinado de dígitos, probablemente le resulte más fácil hacer lo siguiente:

fResOk = roundf( fRes*100.0)/100.0;

Eso multiplicará el valor por 100 (lo que le dará sus 2 dígitos de importancia), redondeará el valor y luego lo reducirá a la magnitud con la que comenzó originalmente.