【问题标题】:convert number to words ,in objective c在目标 c 中将数字转换为单词
【发布时间】:2010-07-31 09:17:56
【问题描述】:

我需要写出如下数字: 1>是的

123>耶克萨德·奥比斯特·奥塞

1,123>yek hezar o yeksad o bist o se

3,002,001>se milion o do hezar o yek ...

我是目标 c 的初学者 :)

我是用c写的,但我想把它转换成obj_c!我该怎么做?

类似:

const char  *yekan[10]={"","yek","do","se","chahar","panj","shesh","haft","hasht","noh"};
char ary[9]={'0','0','0','0','0','0','0','0','0'};

// get a number from user & converting it to string

// user number: 123 > the number in ary:000 000 123) 

// '3' => 3

m=(int) ary[8]; 
m=m-'0'; 

if (j==3)   { printf(" %s ",yekan[m]);} // yekan[3] = se 

output: se

谢谢。

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    NSNumberFormatter 类具有将数字转换为单词的内置功能:

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle: NSNumberFormatterSpellOutStyle];
    [formatter setLocale:...]; // Set locale if you want to use something other then the current one
    NSString* numberString = [formatter stringFromNumber:[NSNumber numberWithInt: 100]];
    

    【讨论】:

    • 感谢您的回答 :),但是如何将语言环境设置为波斯语环境...?
    • 我可以设置 persianlocal :) NSLocale persianLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"];再次感谢:
    【解决方案2】:

    @Vladimir 答案的 Swift 版本(以防万一)

    let formatter = NSNumberFormatter()
    formatter.numberStyle = .SpellOutStyle
    formatter.locale = NSLocale(localeIdentifier: "en_US")
    let string = formatter.stringFromNumber(55015515)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 2013-03-22
      • 2011-02-13
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多