Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将数字格式化为百分比_Ios_Iphone_Percentage_Nsnumber_Nsnumberformatter - Fatal编程技术网

Ios 将数字格式化为百分比

Ios 将数字格式化为百分比,ios,iphone,percentage,nsnumber,nsnumberformatter,Ios,Iphone,Percentage,Nsnumber,Nsnumberformatter,我不明白NSNumberFormatterPercentStyle是如何工作的 示例: NSNumber *number = [NSNumber numberWithFloat:90.5]; NSNumberFormatter *percentageFormatter = [[[NSNumberFormatter alloc] init] autorelease]; [percentageFormatter setNumberStyle:NSNumberFormatterPercentStyle

我不明白NSNumberFormatterPercentStyle是如何工作的

示例:

NSNumber *number = [NSNumber numberWithFloat:90.5];
NSNumberFormatter *percentageFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[percentageFormatter setNumberStyle:NSNumberFormatterPercentStyle];

NSString *strNumber = [percentageFormatter stringFromNumber:numbericString];
NSLog (strNumber);  // Output: 9,050%

我只是想展示“90.5%”(尊重当地人)。NSNumberFormatterPercentStyle使用90.5做什么,为什么?还有,我怎样才能得到我想要的结果

它假定这个数字在0-1范围内,因为它是一个百分比


因此,0.905将使您获得90.5%。

我不知道该语言,但根据您的代码示例和输出,我猜百分比格式化程序将乘以100,然后启用%符号,使1变为100%。您想要的是使用.905,它应该变成90.5%。

如果您想要以
90.5%
结束,则“百分比样式”格式设置程序需要大量
0.905
。它将
90.5
解释为1取1,因此它是1的9050%。

让我们从基础开始:

  • 1=100%
  • 1/2=0.5=50%
“百分之”表示“百分之一百”,所以12%表示百分之十二。你不需要“乘以100”得到一个百分比值,你需要乘以100%(这与乘以1相同,这与不做任何事情相同)

并不是每个人都使用基数10(尽管大多数“现代”语言都使用),也不是每个人都使用100作为分母。例如,请参见perMillSymbol(或kCFNumberFormatterPerMillSymbol)。没有“permill”格式,但它可能会自动用于不使用百分比的地区


另请参见:每千符号(‰)和每万符号(——)。

如果您的数字已经是百分比,只需将乘数设置为
1

numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMultiplier:@1];

普尔基特·戈亚尔的答案是正确的……将乘数设置为1会使“50”变成“50%”

Swift 4/5

像这样创建
NSNumber
扩展名

extension NSNumber {
    func getPercentage() -> String {
        let formatter = NumberFormatter()
        formatter.numberStyle = .percent
        formatter.maximumFractionDigits = 0 // You can set what you want
        return formatter.string(from: self)!
    }
}
获得百分比

let confidence = 0.68300 as NSNumber
print(confidence.getPercentage())
输出


68%

如果OP返回并更新它,我可以接受。我的答案和其他相关的答案都比这早了3年。(我还假设setMaximumFractionDigits将四舍五入到91%,并不能得到他们想要的OP值)(setMultiplier在2010年的ios中可用吗?)