Remove trailing zeros in decimal value with changing length

前端 未结 15 2885
醉话见心
醉话见心 2020-12-05 04:36

I have a procedure I am doing that displays odds but the client wants only significant digits to be shown. So, 1.50 would show as \'1.5\' and 1.00 would show as \'1\'.

15条回答
  •  粉色の甜心
    2020-12-05 05:26

    Easiest way by far, just add zero!

    Examples:

    SET 
        @yournumber1="1.500", 
        @yournumber2="23.030",
        @yournumber3="2.000",
        @yournumber4="4.450"
    ;
    
    SELECT 
        (@yournumber1+0),
        (@yournumber2+0),
        (@yournumber3+0),
        (@yournumber4+0)
    ;
    
    +------------------+------------------+------------------+------------------+
    | (@yournumber1+0) | (@yournumber2+0) | (@yournumber3+0) | (@yournumber4+0) |
    +------------------+------------------+------------------+------------------+
    |              1.5 |            23.03 |                2 |             4.45 |
    +------------------+------------------+------------------+------------------+
    1 row in set (0.00 sec)
    

    If the column your value comes from is DECIMAL or NUMERIC type, then cast it to string first to make sure the conversion takes place...ex:

    SELECT (CAST(`column_name` AS CHAR)+0) FROM `table_name`;
    

    For a shorter way, just use any built-in string function to do the cast:

    SELECT TRIM(`column_name`)+0 FROM `table_name`;
    

提交回复
热议问题