如何获得小数点符号?

发布于 2024-10-25 07:07:55 字数 1065 浏览 5 评论 0原文

我想知道设备上设置的小数符号是哪个。到目前为止,我一直在使用这种方法:直到现在

NSString *decimalSymbol;     
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];    
[f setNumberStyle:NSNumberFormatterDecimalStyle];   
[f setMinimumFractionDigits:2];     
[f setMaximumFractionDigits:2];     
[f setGroupingSeparator:@" "];      

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];    
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];   
[formatter setMinimumFractionDigits:2];     
[formatter setMaximumFractionDigits:2];     
[formatter setGroupingSeparator:@" "];      

NSRange range = {1,1};  

decimalSymbol = [[formatter stringFromNumber:[f numberFromString:[@"" stringByAppendingFormat:@"%.02f", 1.0f]]] substringWithRange:range];  

[formatter release];    
[f release];

,当我在另一台设备(4.3)上进行测试时,它都工作正常 - 返回 null 。 可能是什么问题?

还有其他方法来检索小数点符号吗?

稍后编辑:
我可以使用:

decimalSymbol = [[@"" stringByAppendingFormat:@"%.02f", 1.0f] substringWithRange:range];

但为什么其他方式在这个特定设备上不起作用?

I want to get which is the decimal symbol set up on the device. Until now I was using this method:

NSString *decimalSymbol;     
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];    
[f setNumberStyle:NSNumberFormatterDecimalStyle];   
[f setMinimumFractionDigits:2];     
[f setMaximumFractionDigits:2];     
[f setGroupingSeparator:@" "];      

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];    
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];   
[formatter setMinimumFractionDigits:2];     
[formatter setMaximumFractionDigits:2];     
[formatter setGroupingSeparator:@" "];      

NSRange range = {1,1};  

decimalSymbol = [[formatter stringFromNumber:[f numberFromString:[@"" stringByAppendingFormat:@"%.02f", 1.0f]]] substringWithRange:range];  

[formatter release];    
[f release];

It was working fine until now when I am testing on another device (4.3) - null is returned.
What could be the problem?

Is there another way to retrive the decimal symbol?

LATER EDIT:
I can use:

decimalSymbol = [[@"" stringByAppendingFormat:@"%.02f", 1.0f] substringWithRange:range];

but why the other way it doe not work on this particular device?

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

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

发布评论

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

评论(5

哀由 2024-11-01 07:07:55
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
NSString *decimalSymbol = [formatter decimalSeparator];
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
NSString *decimalSymbol = [formatter decimalSeparator];
小糖芽 2024-11-01 07:07:55

最好的方法是从当前区域设置获取小数分隔符,而不初始化任何 NSNumberFormatter 对象。
像这样:

[[NSLocale currentLocale] objectForKey:NSLocaleDecimalSeparator]

The best way is get the decimal separator from the current locale without init any NSNumberFormatter object.
Like this:

[[NSLocale currentLocale] objectForKey:NSLocaleDecimalSeparator]
り繁华旳梦境 2024-11-01 07:07:55

斯威夫特 4 版本:

Locale.current.decimalSeparator

Swift 4 version:

Locale.current.decimalSeparator
拒绝两难 2024-11-01 07:07:55

Swift 4

您可以使用 Locale.current.decimalSeparatorNSLocale.current.decimalSeparator

基础框架的 Swift 覆盖提供了区域设置
结构,它桥接到 NSLocale 类。

当你需要引用语义或其他时使用 NSLocale
特定于基金会的行为。

NSLocale Apple 文档

Swift 4

You can use Locale.current.decimalSeparator or NSLocale.current.decimalSeparator.

The Swift overlay to the Foundation framework provides the Locale
structure, which bridges to the NSLocale class.

and

use NSLocale when you need reference semantics or other
Foundation-specific behavior.

NSLocale Apple doc

丑丑阿 2024-11-01 07:07:55

decimalSeparator

返回一个字符串,其中包含接收者用来表示小数点分隔符的字符。

- (NSString *)decimalSeparator

示例:

decimalSymbol = [fdecimalSeparator];

decimalSeparator

Returns a string containing the character the receiver uses to represent decimal separators.

- (NSString *)decimalSeparator

Example:

decimalSymbol = [f decimalSeparator];

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文