জিরোগুলি অনুসরণ না করে সর্বাধিক ভগ্নাংশের সংখ্যার সাথে ফর্ম্যাট করা
একটি কাস্টম আউটপুট নির্ভুলতা পছন্দ করা হলে এই দৃশ্যটি ভাল। এই সমাধানটি MirekE থেকে সংখ্যাফর্ম্যাটর + এনএসবার সমাধান হিসাবে প্রায় দ্রুত মনে হয় , তবে এর একটি সুবিধা হ'ল আমরা এখানে এনএসবজেক্ট এড়িয়ে চলেছি iding
extension Double {
func string(maximumFractionDigits: Int = 2) -> String {
let s = String(format: "%.\(maximumFractionDigits)f", self)
var offset = -maximumFractionDigits - 1
for i in stride(from: 0, to: -maximumFractionDigits, by: -1) {
if s[s.index(s.endIndex, offsetBy: i - 1)] != "0" {
offset = i
break
}
}
return String(s[..<s.index(s.endIndex, offsetBy: offset)])
}
}
(এতে কাজ করে extension Float
তবে কেবল ম্যাকোস-টাইপ নয় Float80
)
ব্যবহার: myNumericValue.string(maximumFractionDigits: 2)
বাmyNumericValue.string()
এর জন্য আউটপুট maximumFractionDigits: 2
:
1.0 → "1"
0.12 → "0.12"
0.012 → "0.01"
0.0012 → "0"
0.00012 → "0"