No suelo poner PHP porque las reglas de este foro (Bases de Datos) no permiten poner códigos de lenguaje de programación, pero la solución es híbrida, así que allá va:
Primero tienes que definir ese campo como DECIMAL y no como FLOAT:
Ten en cuenta que el tipo DECIMAL se representa por PRECISION y ESCALA. Precisión es la cantidad de dígitos totales (5 en este caso) y la escala es la cantidad de decimales que usarán (1) por detrás de la coma.
Otra cosa que debes recordar es que la PRECISION incluye el espacio para la coma (1) y el signo, y otro para el decimal (1 en este caso), por lo que el entero posible en la definición del ejemplo tiene sólo tres dígitos.
Deberás poner, entonces, elvalor de ancho de bytes que vayas a usar.
Una vez hecho esto, debes modificar la línea del PHP para incluir el truncado del valor:
Código PHP:
Ver original$sql="INSERT INTO facturas (referencia,importe,puntos,tarjeta,usuario,fechaho ra) VALUES ('$referencia','$importe',TRUNCATE('$puntos',1),'$tarjeta','$u suario','$fechahora')";
Ahora bien, si el valor está llegando redondeado, el problema se está produciendo en PHP, en ese caso tienes que usar la
función round() de PHP para controlar la precisión del número y luego que el SQL lo corte.