আপনার প্রয়োজন অনুসারে সুইফ্ট 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(_:),Doubleround(),NSStringসূচনাকারী,Stringসূচনাকারী,NumberFormatter, ডাবল এক্সটেনশন বা এমনকিNSDecimalNumberএবংDecimal।