获取 NSString 的 floatvalue 时将逗号替换为点

发布于 2024-11-19 05:13:43 字数 283 浏览 3 评论 0原文

我希望用户能够在我的应用程序中输入大于 0 的金额。因此,0,0 或零的任何表示形式都是不可接受的,但例如 0,1 将被接受。

为了做到这一点,我计划获取 NSString 的浮点值并将其与 0.0 进行比较,但这不起作用,因为我们的十进制数字始终需要用逗号分隔(由于业务要求)。如果逗号是点,那么比较就可以完成工作。

在我的金额文本中用点替换逗号的最体面的方法是什么?

PS:对于小数部分,用户只能输入数字和一个逗号。 实际上我想知道这是否可以用数字格式化程序来完成...

提前谢谢

I want the users to be able to input values above 0 for a money amount in my application. So 0,0 or any representation of zero will be unacceptable but 0,1 will be accepted, for example.

In order to do this, I was planning to get the float value of NSString and compare it to 0.0 but this does not work since our decimal numbers need to be seperated with comma, always (due to a business requirement). If the commas were dots, then the comparison does the job.

What's the most decent way to replace commas with dots in my amount texts?

PS: The user is limited to enter only numbers and just one comma, for the decimal part.
And actually I was wondering if this is sthg that could be done with number formatters or so...

Thx in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

狼性发作 2024-11-26 05:13:43

您可以只使用 stringByReplacingOccurrencesOfString

NSString *newString = [ammount stringByReplacingOccurrencesOfString:@"," withString:@"."];

You could just use stringByReplacingOccurrencesOfString

NSString *newString = [ammount stringByReplacingOccurrencesOfString:@"," withString:@"."];
葬花如无物 2024-11-26 05:13:43

你可以使用 NSString+JavaAPI 类别,然后执行:

NSString* newString = [myString replace: @"," withString: @"."];

当然,这个如果用户碰巧输入诸如 1,000,00 之类的内容,则可能无济于事。

You can use the NSString+JavaAPI category, and then do:

NSString* newString = [myString replace: @"," withString: @"."];

Of course, this may not help if the user happens to enter something like 1,000,00.

揽月 2024-11-26 05:13:43

这是使用 NSScanner 的巧妙方法:

    NSScanner *scanner = [NSScanner localizedScannerWithString:theInputString];
    float result;
    [scanner scanFloat:&result];

Here's a neat way to use NSScanner:

    NSScanner *scanner = [NSScanner localizedScannerWithString:theInputString];
    float result;
    [scanner scanFloat:&result];
以往的大感动 2024-11-26 05:13:43

Apple 建议使用 NSScanner。
这是我使用的代码:

NSScanner *scanner;
NSLocale *local =[NSLocale currentLocale ];
[scanner setLocale:local];
float result;
scanner = [NSScanner localizedScannerWithString:<YOUR NSString>];
[scanner scanFloat:&result];

Apple recommend to use an NSScanner.
this is the code I use :

NSScanner *scanner;
NSLocale *local =[NSLocale currentLocale ];
[scanner setLocale:local];
float result;
scanner = [NSScanner localizedScannerWithString:<YOUR NSString>];
[scanner scanFloat:&result];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文