たとえばtimeInterval = 124.04521142という数値を
02:04.04というString型の値にしたいのですが、
フォーマットについての理解が浅いためか、以下のように初心者ながらに冗長気味なのがわかります・・・

let min = timeInterval / 60
let sec = Int(timeInterval.truncatingRemainder(dividingBy: 60))

let timeIntervalInteger = Int(timeInterval)
let decimal = timeInterval - Double(timeIntervalInteger)
    //timeInterval全体から整数のみを引いて小数だけを取り出す

let decimalInteger = Int(decimal * 100)
    //小数の"0."を取り除くため、100倍して小数点以下を切り捨てる

let minSec = String(format: "%02d:%02d%", min, sec)
    //まずmm:ssフォーマットにする

let miliSec = String(format: "%02d", decimalInteger)
    //ミリ秒をffのフォーマットにする

var str = minSec + "." + miliSec

print(str)

timeIntervalからわざわざ整数部分を引いた上でそれを100倍してから"%02dのフォーマットで"."を足すというのはものすごい遠回りな気がします・・・。

timeIntervalをタイマーで0.01秒ごとに1増える整数として扱えば計算は楽になるとは思うのですが、扱いたいものが再生中の曲の現在の再生時間(currentPlaybackTime)で、
TimeInterval型で引き出しているので、少数 -> mm:ss.ffにしたいのです。