عدد التنسيق كنسبة مئوية
-
27-09-2019 - |
سؤال
لا أفهم كيف يعمل nsnumberformperpercenstyle!
مثال:
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). ما الذي يفعله nsnumberformperpercenstyle مع 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" ، لذلك 12 ٪ يعني 12/100. أنت لا "تضاعف على 100" للحصول على قيمة مئوية ، فإنك تتضاعف بنسبة 100 ٪ (وهو نفس الضرب بمقدار 1 ، وهو نفس عدم القيام بأي شيء).
لا يستخدم الجميع القاعدة 10 (على الرغم من أن معظم اللغات "الحديثة" تفعل) ، ولا يستخدم الجميع 100 كمقام. انظر ، على سبيل المثال ، permillsymbol (أو kcfnumberformterpermillsymbol). لا يوجد تنسيق "permill" ، ولكن من الممكن أن يستخدم تلقائيًا للمواقع التي لا تستخدم النسب المئوية.
انظر أيضًا: لكل علامة Mille (‰) وكل عشرة آلاف علامة (‱).
لا أعرف تلك اللغة ، ولكن بناءً على عينة الكود والإخراج ، أعتقد أن النسبة المئوية تتضاعف بنسبة 100 ثم تضع علامة ٪ بحيث تصبح 1 100 ٪. ما تريده هو استخدام .905 ، والذي يجب أن يصبح 90.5 ٪.
يتوقع تنسيق "نمط المئة" عددًا من 0.905
إذا كنت تريد أن ينتهي به المطاف 90.5%
. يفسر 90.5
من أصل 1 ، لذلك 9050 ٪ من 1.
إجابة 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%