Simple: ¿Cómo encontrarías la parte fraccionaria de un número de coma flotante en PHP? Por ejemplo, si tengo el valor 1.25, quiero devolver 0.25.¿Cuál es la mejor forma de obtener la parte fraccionaria de una flotación en PHP?
Respuesta
$x = $x - floor($x)
mis conocimientos de PHP no existen, pero se podía menos el resultado de un piso del número original
Si si el número es negativo, tendrá que hacer esto:
$x = abs($x) - floor(abs($x));
No olvide que no puede confiar en que la aritmética de punto flotante sea 100% precisa. Si le preocupa esto, querrá consultar las funciones BCMath Arbitrary Precision Mathematics.
$x = 22.732423423423432;
$x = bcsub(abs($x),floor(abs($x)),20);
También puede cortar en la cuerda a sí mismo
$x = 22.732423423423432;
$x = strstr ($x, '.');
La respuesta proporcionada por nlucaroni sólo funcionará para los números positivos. Una posible solución que funcione para ambos positivos, así como los números negativos es:
$x = $x - intval($x)
Sólo una nota: el encasillado a (int) sería más rápido – Prasad
Sin embargo, si se trata de algo así como el ruido Perlin u otra representación gráfica, la solución que fue aceptada es correcta. Le dará la parte fraccionaria del número más bajo.
es decir:
.25
: 0 es número entero más adelante, parte fraccional es 0,25-.25
: -1 es entero a continuación, parte fraccionaria es .75
Con las otras soluciones , repetirá 0 como el número entero a continuación y, lo que es peor, obtendrá valores fraccionarios invertidos para todos los números negativos.
Algunas de las respuestas anteriores son parciales. Esto, creo, es lo que se necesita para manejar todos situaciones:
function getDecimalPart($floatNum) {
return abs($floatNum - intval($floatNum));
}
$decimalPart = getDecimalPart($floatNum);
$x = fmod($x, 1);
He aquí una demostración:
<?php
$x = 25.3333;
$x = fmod($x, 1);
var_dump($x);
caso ouptut
double(0.3333)
- 1. Obtener la parte fraccionaria de un flotante sin usar modf()
- 2. ¿Cuál es la mejor forma de obtener Contexto?
- 3. ¿Cuál es la mejor forma de diseñar una clase C#?
- 4. CInt no redondea el valor doble de forma consistente, ¿cómo puedo eliminar la parte fraccionaria?
- 5. ¿Cuál es la mejor forma de obtener una duración de archivo de audio en Android?
- 6. ¿Cuál es la mejor forma de generar rangos en MYSQL?
- 7. ¿Cuál es la mejor forma de formatear C# en WordPress?
- 8. Cuál es la mejor manera de paginar resultados en php
- 9. La mejor forma de obtener una ubicación geográfica en Java
- 10. ¿Cuál es la mejor forma de generar una clave aleatoria dentro de PHP?
- 11. ¿Cuál es la mejor forma de convertir ByteString en Int?
- 12. PHP ¿Cuál es la mejor manera de obtener las primeras 5 palabras de una cadena?
- 13. Forma independiente de la plataforma para obtener el valor máximo de flotación de C++
- 14. ¿Cuál es la mejor forma de obtener la ruta del ejecutable durante el tiempo de ejecución?
- 15. ¿Cuál es la mejor forma de obtener el nombre de etiqueta de un elemento en JS?
- 16. ¿Cuál es la mejor forma de obtener la última identificación insertada usando sqlite de Java?
- 17. ¿Cuál es la mejor forma de obtener entrada de consola en Java?
- 18. ¿Cuál es la mejor forma de normalización de Unicode?
- 19. ¿Cuál es la mejor forma de generar resultados de Excel en PHP?
- 20. ¿Cuál es la mejor forma de implementar un Proyecto Eclipse PHP (PDT) en Apache? (en Ubuntu)
- 21. ¿Cuál es la mejor forma de obtener autocompletaciones/intellisense de Python en Vim dinámicamente?
- 22. ¿Cuál es la mejor forma de visualizar programáticamente una hoja de ruta en la web?
- 23. ¿Cuál es la mejor forma de analizar cadenas?
- 24. ¿Cuál es la mejor forma de distribuir aplicaciones Java?
- 25. ¿Cuál es la mejor forma de usar NLog con MEF?
- 26. ¿Cuál es la mejor/más segura forma de reinstalar Homebrew?
- 27. ¿Cuál es la mejor manera de enviar entradas deshabilitadas como parte de una solicitud JQuery AJAX?
- 28. ¿Cuál es la mejor forma de ejecutar expresiones matemáticas?
- 29. ¿Cuál es la mejor forma de organizar el código?
- 30. ¿Cuál es la mejor forma de precompilar JSP con Ant
esto no funcionará cuando se trate de un número flotante como = 0.25 –
$ x = fmod ($ x, 1); – primo
@primo: pon tu comentario en una respuesta, ¡mereces aumentar tu reputación por eso! :) –