NsnumberFormatter para agregar y eliminar decimales -- ios campo con decimal campo con nsnumberformatter camp Relacionados El problema

NSNumberFormatter to add and remove decimals


1
vote

problema

Español

¿Cuál es la mejor manera de hacer frente a los enteros, NSSTRINGS y NSNUMBORMATTRATPATT?

Tengo una aplicación con un Uitextfield, donde los usuarios pueden ingresar números. Para cada cambio en el campo Uitextfield, mi aplicación está tomando inmediatamente la entrada, póngala en mi función que realiza un cálculo, y emite el resultado en un UILABEL.

Las personas pueden trabajar con grandes números aquí, por lo que para facilitarles leer cuál es su opinión, decidí que quiero hacerlo posible para que la entrada cambie tan pronto como lo inserten.

Por ejemplo, cuando escribe 1000 que se cambia automáticamente en 1,000. Cuando escribe 100000000000 se cambia automáticamente en 100,000,000,000, etc.

Esto pude hacerme, así:

  formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; self.inputField.text = [formatter stringFromNumber:[formatter numberFromString:self.inputField.text]];   

Tal vez no la mejor manera, pero funciona.

Mi función espera un INT como entrada, por lo que hasta 999 es muy fácil: puedo hacer lo siguiente:

  [self.inputField.text integerValue];   

y funciona

Pero cada vez que tengo 1000 o más en mi Uitextfield, Self.Inputfield.Text Property será de 1,000 .. Y luego las cosas se equivocan con el uso de IntegergValue de él.

Entonces, mi pregunta es, ¿cómo puedo volver de NSString a un INT, cuando hay decimales en ella?

Original en ingles

what is the best way on how to deal with integers, NSStrings and NSNumberFormatter ?

I have an app with an UITextField, where users can input numbers. By every change in the UITextField, my app is immediately taking the input, put it in my function that makes a calculation, and outputs the result in an UILabel.

people can work with large numbers here, so in order to make it easier for them to read what their input is, I decided that I want to make it possible so that the input changes as soon as they insert it.

For example, when you type in 1000 that it automatically changes into 1,000. when you type in 100000000000 it automatically changes into 100,000,000,000 etc.

This I was able to do myself, like this:

formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; self.inputField.text = [formatter stringFromNumber:[formatter numberFromString:self.inputField.text]]; 

maybe not the best way, but it works.

my function expects an int as input, so up till 999 it's very easy: i can do the following:

[self.inputField.text integerValue]; 

and it works

but whenever I have 1000 or higher in my UITextField, self.inputField.text property will be 1,000 .. and then things go wrong with using the integerValue from it.

So my question is, how can I go back from NSString to an int, when there are decimals in it ?

        

Lista de respuestas

2
 
vote
vote
La mejor respuesta
 

Utilice la función -NumberFROMSTRING para obtener un número NSNumber de la cadena, luego use el intvalor de la clase NSNumber para obtener el valor entero:

  NSString *string = @"1,000"; NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; NSNumber *number = [formatter numberFromString:string]; int intValue = [number integerValue];// intValue = 1000   
 

Use the -numberFromString function to get an NSNumber from the string, then use the intValue from the NSNumber class to get the integer value:

NSString *string = @"1,000"; NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; NSNumber *number = [formatter numberFromString:string]; int intValue = [number integerValue];// intValue = 1000 
 
 
 
 

Relacionados problema

0  Nstring a NSNumber para grandes números  ( Nsstring to nsnumber for large numbers ) 
Tengo una NSSTRING que contiene un número muy grande. Necesito convertir esto a un NSNumber, pero siempre está devolviendo un NSNumber en formato científico, ...

1  Convierta simple NSString con coma para flotar o doble  ( Simple convert nsstring with comma to float or double ) 
Tengo una pantalla donde el usuario puede ingresar alguna información. Muestra un decimalPad . Según el usuario locale , sé que el decimalPad mostrará co...

1  Nsnumberformatter ios 3.2 error?  ( Nsnumberformatter ios 3 2 bug ) 
Tengo código que estoy transmitiendo desde iOS 4 a iOS 3.2 para un proyecto de demostración en un iPad. Tengo este código: in_cluster=False7 Esto funcio...

4  Cortamiento de números de moneda utilizando abreviaturas mientras mantiene el formato de moneda  ( Shortening currency numbers using abbreviations while keeping currency format ) 
Me gustaría acortar números de divisas usando "k" para representar miles de "M" para representar a millones y demás. Dado que los números representan el...

3  NSNUMBORFORMATT DESIGUAR LOS ESPACIOS ANTES DE LA MONEDA  ( Nsnumberformatter removing spaces before currency ) 
Estoy usando 2018April5 01:33:31 2016January7 08:55:21 3 para formatear mis números a las cuerdas. Tengo un dispositivo con formato de la región hebreo (Isr...

1  CAMPO DE TEXTO DE NSNUMBORMATEGATE MIL Separador  ( Nsnumberformatter text field thousand separator ) 
Estoy programando la calculadora de crédito y quiero los números que forman con el separador (local) miles de miles cuando un usuario ingresa un número. Por...

0  Agregar comas a los valores numéricos como tipos de usuarios en el UTILDFIELD  ( Adding commas to number values as user types in the uitextfield ) 
Estoy usando un método alterado para este Donde quiero formatear un UITextField a medida que el usuario está escribiendo el número. Como en quiero que el ...

10  ¿Es una buena idea preferir NSNUMBORMATINGBLEHAVIOR10_4 sobre NSNUMUMFORMATINGREHAVIORDEFAULTEFAULT?  ( Is it a good idea to prefer nsnumberformatterbehavior10 4 over nsnumberformatter ) 
Me pregunto si sería más seguro confiar en un NSNumberFormBehavior10_4 en lugar de predeterminado, porque el incumplimiento puede cambiar arbitrario algún día...

1  NSNUMENTORFORMATT NO HAN HONRANDO INFORMACIÓN DE DIGITOS EN ESTILO CIENTÍFICO  ( Nsnumberformatter not honoring digit information in scientific style ) 
Estoy tratando de mostrar algunos decimales en un estilo científico. Estoy usando objetos nsdecimalnumber y nsnumberformatters. Sin embargo, al configurar el ...

1  ¿Cómo mostrar la moneda sin redondear como cadena en Xcode?  ( How to display currency without rounding as string in xcode ) 
Tengo problemas cuando tengo valor monetario 9999999999999999999.99 De ese valor, quiero mostrarlo como cadena. El problema es que el valor siempre redond...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos