Hoe zou ik naar beneden afronden op het dichtstbijzijnde gehele getal in MySQL?
Voorbeeld: 12345.7344 rounds to 12345
mysql’s round()
functie rondt naar boven af.
Ik weet niet hoe lang de waarden of de decimalen zullen zijn, het kan 10 cijfers zijn met 4 cijfers achter de komma, het kan 2 cijfers zijn met 7 cijfers achter de komma.
Antwoord 1, autoriteit 100%
Gebruik FLOOR:
SELECT FLOOR(your_field) FROM your_table
Antwoord 2, autoriteit 45%
Gebruik FLOOR().
Het zal uw decimaal afronden op het lageregehele getal. Voorbeelden:
SELECT FLOOR(1.9) /* return 1 */
SELECT FLOOR(1.1) /* return 1 */
Andere nuttige afronding
Als je je decimaal wilt afronden op het dichtstbijzijndegehele getal, gebruik je ROND(). Voorbeelden:
SELECT ROUND(1.9) /* return 2 */
SELECT ROUND(1.1) /* return 1 */
Als je je decimaal wilt afronden op het bovenstegehele getal, gebruik je PLAFOND(). Voorbeelden:
SELECT CEILING(1.9) /* return 2 */
SELECT CEILING(1.1) /* return 2 */
Antwoord 3, autoriteit 3%
SELECT FLOOR(12345.7344);
Lees hier.
Antwoord 4, autoriteit 2%
SUBSTR
zal in sommige gevallen beter zijn dan FLOOR
omdat FLOOR als volgt een “bug” heeft:
SELECT 25 * 9.54 + 0.5 -> 239.00
SELECT FLOOR(25 * 9.54 + 0.5) -> 238 (oops!)
SELECT SUBSTR((25*9.54+0.5),1,LOCATE('.',(25*9.54+0.5)) - 1) -> 239
Antwoord 5
Het kan op de volgende twee manieren worden gedaan:
select floor(desired_field_value) from table
select round(desired_field_value-0.5) from table
De tweede-weg verklaring: neem aan dat 12345.7344 integer is. Dus 12345.7344 – 0.5 = 12345.2344 en
afronding is het resultaat 12345.
Antwoord 6
Probeer dit,
SELECT SUBSTR(12345.7344,1,LOCATE('.', 12345.7344) - 1)
of
SELECT FLOOR(12345.7344)
SQLFiddle-demo
Antwoord 7
Als je decimalen nodig hebt, kun je dit gebruiken
DECLARE @Num NUMERIC(18, 7) = 19.1471985
SELECT FLOOR(@Num * 10000) / 10000
Uitgang: 19.147100
Wissen: 985
Toevoegen: 00
OF gebruik dit:
SELECT SUBSTRING(CONVERT(VARCHAR, @Num), 1, CHARINDEX('.', @Num) + 4)
Uitvoer: 19.1471
Wissen: 985
Antwoord 8
Beide query’s worden gebruikt voor het naar beneden afronden van het dichtstbijzijnde gehele getal in MySQL
- SELECTEER VERDIEPING (445.6) ;
- SELECTEER NULL(222.456);