datos - string to double swift
Cómo encontrar el valor máximo para Double y Float en Swift (5)
Aprendizaje actual Swift, hay formas de encontrar el valor
máximo
y
mínimo
para diferentes tipos de
Int.max
enteros
como
Int.max
e
Int.min
.
¿Hay alguna manera de encontrar el valor máximo para Double y Float? Además, ¿qué documento debo remitir para este tipo de pregunta? Actualmente estoy leyendo el lenguaje de programación Swift de Apple.
A partir de Swift 3, debe usar:
CGFloat.greatestFiniteMagnitude
Double.greatestFiniteMagnitude
Float.greatestFiniteMagnitude
La respuesta de AV está bien, pero encuentro esas macros difíciles de recordar y un poco no obvias, así que eventualmente hice que
Double.MIN
y sus amigos funcionen:
extension Double {
static var MIN = -DBL_MAX
static var MAX_NEG = -DBL_MIN
static var MIN_POS = DBL_MIN
static var MAX = DBL_MAX
}
No use min y max en minúscula: esos símbolos se usan en Swift 3.
Si bien no hay
Double.max
, se define en el encabezado C
float.h
, al que puede acceder en Swift a través de la
import Darwin
.
import Darwin
let fmax = FLT_MAX
let dmax = DBL_MAX
Estos son aproximadamente
3.4 * 10^38
y
1.79 * 10^308
respectivamente.
Pero tenga en cuenta que no es tan simple con números de coma flotante (nunca es simple con números de coma flotante). Al mantener números tan grandes, pierde precisión de una manera similar a perder precisión con números muy pequeños, por lo tanto:
let d = DBL_MAX
let e = d - 1.0
let diff = d - e
diff == 0.0 // true
let maxPlusOne = DBL_MAX + 1
maxPlusOne == d // true
let inf = DBL_MAX * 2
// perhaps infinity is the “maximum”
inf == Double.infinity // true
Por lo tanto, antes de entrar en algunos cálculos que posiblemente repasen estos límites, probablemente debería leer en coma flotante. Here y here son probablemente un buen comienzo.
Solo escribe
let mxFloat = MAXFLOAT
Obtendrá el valor máximo de flotante en swif.