Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mysql decimal round

I'm new to mysql and need some basic things.

I need to round the decimals like :

21,4758 should be 21,48

0,2250 should be 0,22

23,0850 should be 23,08

22,9950 should be 22,99

I tried lots of thing but couldn't make it.

Thanks.

like image 931
Can Avatar asked Dec 07 '22 10:12

Can


2 Answers

Try this:

// round the value to two decimal places 
SELECT ROUND(<YOUR_FIELD>, 2) field FROM <YOUR_TABLE>
// use truncate if you don't wan't to round the actual value
SELECT TRUNCATE(<YOUR_FIELD>, 2) field FROM <YOUR_TABLE>
// you can also use round or truncate depending whether the third decimal is > 5
SELECT IF(SUBSTR(<YOUR_FIELD>, 5, 1) > 5, 
   ROUND(<YOUR_FIELD>, 2), 
   TRUNCATE(<YOUR_FIELD>, 2)) field 
FROM <YOUR_TABLE>;

The above isn't a complete solution, but perhaps it will point you in the right direction.

Read the documentation for mysql round() and mysql truncate()

like image 125
Cyclonecode Avatar answered Dec 29 '22 20:12

Cyclonecode


DECLARE @old decimal(38, 10)
DECLARE @p decimal(38, 10)
SET @p = 21.4758

SET @p = @p * 100
SET @p = @p - 0.01
SET @p = ROUND(@p, 0)
SET @p = @p / 100.0
SELECT @p
like image 29
Eren Avatar answered Dec 29 '22 21:12

Eren