আপনার প্রয়োজন অনুসারে সুইফ্ট 5 এর সাহায্যে, এ থেকে গোলাকৃত ফলাফল পেতে আপনি নীচের 9 টি শৈলীর একটি চয়ন করতে পারেন Double
।
# 1। FloatingPoint
rounded()
পদ্ধতি ব্যবহার
সবচেয়ে সহজ ক্ষেত্রে, আপনি Double
rounded()
পদ্ধতিটি ব্যবহার করতে পারেন ।
let roundedValue1 = (0.6844 * 1000).rounded() / 1000
let roundedValue2 = (0.6849 * 1000).rounded() / 1000
print(roundedValue1) // returns 0.684
print(roundedValue2) // returns 0.685
# 2। FloatingPoint
rounded(_:)
পদ্ধতি ব্যবহার
let roundedValue1 = (0.6844 * 1000).rounded(.toNearestOrEven) / 1000
let roundedValue2 = (0.6849 * 1000).rounded(.toNearestOrEven) / 1000
print(roundedValue1) // returns 0.684
print(roundedValue2) // returns 0.685
# 3। ডারউইন round
ফাংশন ব্যবহার করে
ফাউন্ডেশন round
ডারউইনের মাধ্যমে একটি ফাংশন সরবরাহ করে।
import Foundation
let roundedValue1 = round(0.6844 * 1000) / 1000
let roundedValue2 = round(0.6849 * 1000) / 1000
print(roundedValue1) // returns 0.684
print(roundedValue2) // returns 0.685
# 4। Double
ডারউইন round
এবং pow
ফাংশনগুলিতে নির্মিত এক্সটেনশন কাস্টম পদ্ধতি ব্যবহার করে
আপনি যদি পূর্বের ক্রিয়াকলাপটি অনেকবার পুনরাবৃত্তি করতে চান তবে আপনার কোডটি রিফ্যাক্ট করা ভাল ধারণা হতে পারে।
import Foundation
extension Double {
func roundToDecimal(_ fractionDigits: Int) -> Double {
let multiplier = pow(10, Double(fractionDigits))
return Darwin.round(self * multiplier) / multiplier
}
}
let roundedValue1 = 0.6844.roundToDecimal(3)
let roundedValue2 = 0.6849.roundToDecimal(3)
print(roundedValue1) // returns 0.684
print(roundedValue2) // returns 0.685
যদি প্রয়োজন হয়, NSDecimalNumber
দশমিক সংখ্যার বৃত্তাকার জন্য একটি ভার্বোস তবে শক্তিশালী সমাধান সরবরাহ করে।
import Foundation
let scale: Int16 = 3
let behavior = NSDecimalNumberHandler(roundingMode: .plain, scale: scale, raiseOnExactness: false, raiseOnOverflow: false, raiseOnUnderflow: false, raiseOnDivideByZero: true)
let roundedValue1 = NSDecimalNumber(value: 0.6844).rounding(accordingToBehavior: behavior)
let roundedValue2 = NSDecimalNumber(value: 0.6849).rounding(accordingToBehavior: behavior)
print(roundedValue1) // returns 0.684
print(roundedValue2) // returns 0.685
import Foundation
let scale = 3
var value1 = Decimal(0.6844)
var value2 = Decimal(0.6849)
var roundedValue1 = Decimal()
var roundedValue2 = Decimal()
NSDecimalRound(&roundedValue1, &value1, scale, NSDecimalNumber.RoundingMode.plain)
NSDecimalRound(&roundedValue2, &value2, scale, NSDecimalNumber.RoundingMode.plain)
print(roundedValue1) // returns 0.684
print(roundedValue2) // returns 0.685
আপনি যদি NSString
আপনার রাউন্ডিং অপারেশন থেকে কোনও ফিরে আসতে চান NSString
তবে ইনিশিয়ালাইজার ব্যবহার করা একটি সহজ তবে দক্ষ সমাধান।
import Foundation
let roundedValue1 = NSString(format: "%.3f", 0.6844)
let roundedValue2 = NSString(format: "%.3f", 0.6849)
print(roundedValue1) // prints 0.684
print(roundedValue2) // prints 0.685
# 8। String
init(format:_:)
ইনিশিয়ালাইজার ব্যবহার করে
String
ফাউন্ডেশনের NSString
শ্রেণিতে সুইফটের ধরণটি ব্রিজ করা হয় । সুতরাং, String
আপনার রাউন্ডিং অপারেশন থেকে কোনও ফিরে আসতে আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন :
import Foundation
let roundedValue1 = String(format: "%.3f", 0.6844)
let roundedValue2 = String(format: "%.3f", 0.6849)
print(roundedValue1) // prints 0.684
print(roundedValue2) // prints 0.685
আপনি যদি String?
আপনার রাউন্ডিং অপারেশন থেকে একটি পাওয়ার প্রত্যাশা করেন তবে NumberFormatter
একটি অত্যন্ত কাস্টমাইজযোগ্য সমাধান দেয়।
import Foundation
let formatter = NumberFormatter()
formatter.numberStyle = NumberFormatter.Style.decimal
formatter.roundingMode = NumberFormatter.RoundingMode.halfUp
formatter.maximumFractionDigits = 3
let roundedValue1 = formatter.string(from: 0.6844)
let roundedValue2 = formatter.string(from: 0.6849)
print(String(describing: roundedValue1)) // prints Optional("0.684")
print(String(describing: roundedValue2)) // prints Optional("0.685")
round(_:)
,Double
round()
,NSString
সূচনাকারী,String
সূচনাকারী,NumberFormatter
, ডাবল এক্সটেনশন বা এমনকিNSDecimalNumber
এবংDecimal
।