Hoe naar beneden afronden op het dichtstbijzijnde gehele getal in MySQL?

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%

SUBSTRzal in sommige gevallen beter zijn dan FLOORomdat 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

  1. SELECTEER VERDIEPING (445.6) ;
  2. SELECTEER NULL(222.456);

Other episodes