获取 NSString 的 floatvalue 时将逗号替换为点
我希望用户能够在我的应用程序中输入大于 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以只使用 stringByReplacingOccurrencesOfString
You could just use
stringByReplacingOccurrencesOfString
你可以使用 NSString+JavaAPI 类别,然后执行:
当然,这个如果用户碰巧输入诸如
1,000,00
之类的内容,则可能无济于事。You can use the NSString+JavaAPI category, and then do:
Of course, this may not help if the user happens to enter something like
1,000,00
.这是使用 NSScanner 的巧妙方法:
Here's a neat way to use
NSScanner
:Apple 建议使用 NSScanner。
这是我使用的代码:
Apple recommend to use an NSScanner.
this is the code I use :