Se ho un numero in virgola mobile in Haskell, come faccio a testare se è un numero intero.Come si verifica se un numero in virgola mobile è un numero intero in haskell?
15
A
risposta
24
isInt x = x == fromInteger (round x)
> isInt 2
True
> isInt 2.5
False
E solo un promemoria: ricordare sempre la maledizione onnipotente dei numeri in virgola mobile:
> isInt (0.1^2*200)
False
> 0.1^2*200
2.0000000000000004
15
Okay, quindi questo è un anno di ritardo, ma io sono un grande fan di una modifica del quanto sopra:
--Returns if x is an int to n decimal places
isInt :: (Integral a, RealFrac b) => b -> a -> Bool
isInt x n = (round $ 10^(fromIntegral n)*(x-(fromIntegral $ round x)))==0
Così, per esempio isInt 4.0001 3
rendimenti True
ma isInt 4.0001 4
rendimenti False
. Eseguirlo con un valore intorno a 10
è quasi sempre sufficientemente preciso da rendere gli errori float ciò che restituisce i problemi; Io di solito uso 7
.
Problemi correlati
- 1. Reinterpretare il numero in virgola mobile nel numero intero
- 2. Verifica se il valore è un numero intero in Sass
- 3. Posso confrontare e aggiungere un numero in virgola mobile a un numero intero in C?
- 4. Python: verifica se un argomento è un numero intero
- 5. Converti variabile in virgola mobile in numero intero?
- 6. Formato numero in virgola mobile
- 7. Come rilevare se un dato numero è un numero intero?
- 8. VBScript: verifica se l'input dell'utente è un numero intero
- 9. Come si fa a arrotondare un numero in virgola mobile a un numero specificato di cifre?
- 10. VB2010 Come capire se un numero è un intero intero
- 11. Come si conterebbe il numero di bit impostato in un numero in virgola mobile?
- 12. Rappresentazione piacevole di un numero in virgola mobile in python
- 13. bc troncare virgola mobile numero
- 14. Dato un numero, come trovare un numero più vicino in una serie di dati in virgola mobile
- 15. Verifica se un intero è compreso nell'intervallo
- 16. PHP: Verifica se un numero intero è in un determinato intervallo oppure no
- 17. Convertire un numero intero in un numero float in Golang
- 18. arrotondare un numero in virgola mobile al valore intero successivo in java
- 19. Come verificare se un doppio è un numero intero
- 20. Come rappresentare un numero intero superiore a un numero intero
- 21. Formato numero in virgola mobile con zeri
- 22. Controllare se una variabile è un numero intero in javascript
- 23. Converti stringa in intero/virgola mobile in Haskell?
- 24. Come si converte un numero intero in un tipo enumerato?
- 25. Come si verifica se un numero viene valutato su infinito?
- 26. determinare se un dato numero è un numero primo in Haskell
- 27. Come estrarre un numero intero da un NSDictionary e inserirlo in un numero intero?
- 28. Come convertire un numero intero in serie
- 29. Come si salva un numero in virgola mobile in 2 byte?
- 30. come verificare se il carattere è un numero intero
cool, c'è un built-in (per curiosità) – Peter
@Peter: no, secondo Hoogle. – yairchu
Attenzione che 'isInt (1/0) == True' – hvr