Comment pourrais-je arrondir à l'entier le plus proche dans MySQL?
Exemple: 12345.7344 rounds to 12345
la fonction round()
de mysql est arrondie.
Je ne sais pas combien de temps les valeurs ni les décimales seront, pourrait être 10 chiffres avec 4 décimales, pourrait être 2 chiffres avec 7 décimales.
Utilisez FLOOR :
SELECT FLOOR(your_field) FROM your_table
Utilisez FLOOR () , si vous souhaitez arrondir votre nombre décimal à l’entier lower. Exemples:
FLOOR(1.9) => 1
FLOOR(1.1) => 1
Utilisez ROUND () , si vous souhaitez arrondir votre virgule à l'entier le plus proche. Exemples:
ROUND(1.9) => 2
ROUND(1.1) => 1
Utilisez CEIL () , si vous souhaitez arrondir votre nombre décimal à l’entier upper. Exemples:
CEIL(1.9) => 2
CEIL(1.1) => 2
SUBSTR
sera mieux que FLOOR
dans certains cas car FLOOR a un "bogue" comme suit:
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
SELECT FLOOR(12345.7344);
Lire plus ici .
Essaye ça,
SELECT SUBSTR(12345.7344,1,LOCATE('.', 12345.7344) - 1)
ou
SELECT FLOOR(12345.7344)
si vous avez besoin de décimales, vous pouvez utiliser ceci
DECLARE @Num NUMERIC(18, 7) = 19.1471985
SELECT FLOOR(@Num * 10000) / 10000
Sortie: 19.147100 Effacer: 985 Ajouter: 00
OU utilisez ceci:
SELECT SUBSTRING(CONVERT(VARCHAR, @Num), 1, CHARINDEX('.', @Num) + 4)
Sortie: 19.1471 Clair: 985.
Cela peut être fait de deux manières:
select floor(desired_field_value) from table
select round(desired_field_value-0.5) from table
La seconde explication: Supposons un entier de 12345.7344. Donc, 12345.7344 - 0.5 = 12345.2344 et le résultat sera arrondi à 12345.