Este post fue evaluado por nuestros expertos para asegurar la veracidad de esta división.
Solución:
! Gracias por los comentarios! Esto es lo que estoy usando ahora.
extension Decimal
var isWholeNumber: Bool
return self.isZero
Aquí hay una traducción de la solución Objective-C en Comprobar si NSDecimalNumber es un número entero para Swift:
extension Decimal
var isWholeNumber: Bool
if isZero return true
if !isNormal return false
var myself = self
var rounded = Decimal()
NSDecimalRound(&rounded, &myself, 0, .plain)
return self == rounded
print(Decimal(string: "1234.0")!.isWholeNumber) // true
print(Decimal(string: "1234.5")!.isWholeNumber) // false
Esto funciona incluso si la mantisa no es mínima (o el exponente no es máximo), como 100 * 10-1. Ejemplo:
let z = Decimal(_exponent: -1, _length: 1, _isNegative: 0, _isCompact: 1, _reserved: 0,
_mantissa: (100, 0, 0, 0, 0, 0, 0, 0))
print(z) // 10.0
print(z.exponent) // -1
print(z.isWholeNumber) // true
Aquí puedes ver las comentarios y valoraciones de los usuarios
Recuerda algo, que te damos el privilegio parafrasear .
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)