How to sort an array of strings where each string represents a decimal number in Swift

1 Answer

0 votes
import Foundation

// Comparator function to sort strings as decimal numbers
func compareAsDecimal(_ a: String, _ b: String) -> Bool {
    // Convert strings to float for comparison
    let numA = Double(a) ?? 0.0
    let numB = Double(b) ?? 0.0
    
    return numA < numB
}

// Input array of strings
var numbers = ["12.3", "5.6", "789.1", "3.14", "456.0", "0", "0.01", "4.0"]

// Sort the array using the custom comparator
numbers.sort(by: compareAsDecimal)

print("Sorted array of decimal strings:")
for num in numbers {
    print("\(num)  ", terminator: "")
}



/*
run:

Sorted array of decimal strings:
0  0.01  3.14  4.0  5.6  12.3  456.0  789.1 

*/

 



answered Sep 1 by avibootz
...