Format a UITextField for currency

前端 未结 2 693
梦谈多话
梦谈多话 2021-01-16 10:34

I have a UITextField on my aplication that receives only numeric input from the user. This numeric input represents currency and have the default value of 0.00.

I wo

2条回答
  •  醉酒成梦
    2021-01-16 11:32

    You can convert integer or double/float value to string by following:

    NSString *str = [@(myInt) stringValue];
    NSString *str1 = [[NSNumber numberWithFloat:myFloat] stringValue];
    

    After that you can convert string to NSDecimalNumber by many ways. Like:

    NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:@"100.1"];
    NSLog(@"%@", number);
    NSDecimalNumber *num = [NSDecimalNumber decimalNumberWithString:@"100.1" locale:NSLocale.currentLocale];
    NSLog(@"%@",num);
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [formatter setLocale:[NSLocale currentLocale]];
    NSLog(@"%@", [formatter stringFromNumber:number]);
    

    NSNumberFormatter will help you with the right formatting. Please read apples page for NSDecimalNumber and NSNumberFormatter. NSNumberFormatter contains a section named"Configuring the Format of Currency". I didn't try it, but it seems something that can help you.

    Let me know if this helps.. :)

提交回复
热议问题