パーセンテージとしてのフォーマット番号
-
27-09-2019 - |
質問
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%」(NSLocalを尊重)を表示したいだけです。 nsnumberformatterpercentstyleは90.5で何をしているのですか?そして、どうすれば希望の結果を得ることができますか!?
解決
その数は0-1の範囲であると仮定します。
したがって、0.905は90.5%を獲得します。
他のヒント
乗数をに設定するだけです 1
あなたの数字がすでに割合である場合。
numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMultiplier:@1];
基本から始めましょう:
- 1 = 100%
- 1/2 = 0.5 = 50%
「パーセント」は「100のうち「100のうち」を意味するため、12%が12/100を意味します。パーセンテージ値を取得するために「100を掛けて」ではなく、100%を掛けます(これは1を掛けるのと同じです。これは何もしないのと同じです)。
誰もがベース10を使用しているわけではありません(ほとんどの「現代の」言語は行いますが)、誰もが分母として100を使用しているわけではありません。たとえば、permillsymbol(またはkcfnumberformatterpermillsymbol)を参照してください。 「パーマル」形式はありませんが、パーセンテージを使用しないロケールに自動的に使用される可能性があります。
参照:Mille Sign(‰)ごとに、1万サイン(‱)ごと。
私はその言語を知りませんが、あなたのコードのサンプルと出力に基づいて、100%になるように、パーセンテージのフォーマッタは100倍になり、%サインをつけていると思います。あなたが望むのは.905を使用することです。これは90.5%になります。
「パーセントスタイル」フォーマッターは多くのことを期待しています 0.905
あなたが終わりたいなら 90.5%
. 。解釈します 90.5
1のうち、1の9050%です。
Pulkit Goyalの答えは正しいです...乗数を1に設定すると「50」に「50%」になります
迅速な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%