Avatar ·

Formateo preciso de números de punto flotante en Swift: especificadores de formato de string

¡Hola a todos! Acabo de empezar a aprender Swift y me encontré con un problema al formatear números de punto flotante. Necesito mostrar un valor de tipo Double con un número específico de decimales, por ejemplo, 2 decimales. En otros lenguajes, como C o Java, usaba especificadores de formato como %.2f, pero en Swift esto parece no funcionar directamente.

Esto es lo que he probado:

let pi = 3.1415926535
let formatted = String(format: "%.2f", pi)
print(formatted) // "3.14" — ¡funciona!

Pero cuando intenté usar String(format:) con otros especificadores, por ejemplo, %e para notación científica o %g para selección automática de formato, obtuve resultados extraños. También necesito alinear los números por ancho de campo, agregando espacios o ceros a la izquierda. Por ejemplo, que el número 42.1 se convierta en "042.10".

He leído sobre NumberFormatter, pero parece demasiado engorroso para tareas simples.