tipos datos swift floating-point int double infinity

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.


Todos ellos con el uso de swift 5.