• mysql 和php 保留2位小数


    一般交易中保留的数字的小数位数为2位(即最小单位为 1分钱【0.01元】)

    数据库设计中预金钱有关或要求精准度要高的用 decimal(n,m) 表示,n表示保留的数字长度,保留的小数位数,如decimal(5,2) 对应的最大值 999.99

     然而在mysql 中进行浮点数计算时,数据就需要进行截取保留

    以下是一些保留小数位数的方法

    mysql中:

    方法一:truncate() 直接截取不四舍五入

    select truncate(4545.1366,2);

    运行结果:4545.13

    方法二:FORMAT() 四舍五入,整数部分超过三位的时候以逗号分割,并且返回的结果是string类型的。

    select FORMAT(4545.1366,2);

    运行结果:4,545.14

    方法三:四舍五入 ,适合金钱保留计算

    select convert(4545.1366,decimal(6,2));

    运行结果:4545.14

    备注:

    MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。

    CAST(value as type);

    CONVERT(value, type);

    可以转换的类型(type)是有限制的。这个类型可以是以下值其中的一个:

    • 二进制,同带binary前缀的效果 : BINARY    
    • 字符型,可带参数 : CHAR()     
    • 日期 : DATE     
    • 时间: TIME     
    • 日期时间型 : DATETIME     
    • 浮点数 : DECIMAL      
    • 整数 : SIGNED     
    • 无符号整数 : UNSIGNED

    PHP中:

    四舍五入法:

        $num = 4545.1366;

     

            //第一种:利用round()对浮点数进行四舍五入

            var_dump(round($num,2)); //float 4545.14

            

            //第二种:利用sprintf格式化字符串

            $format_num = sprintf("%.2f",$num);

            var_dump($format_num); //string '4545.14'

            

            //第三种:利用千位分组来格式化数字的函数number_format()

            var_dump(number_format($num, 2)); //string '4,545.14'

            //或者如下

            var_dump(number_format($num, 2, '.', ''));// string '4,545.14'

            //number_format(float number, int [decimals], string [dec_point规定用作小数点的字符串], string [thousands_sep规定用作千位分隔符的字符串,

        //注释:如果设置了该参数,那么所有其他参数都是必需的。])

     

    不四舍五入:

      

        $format_num = sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -1));
           var_dump($format_num); //string '4545.13'
         
    取整
        ceil() 向上取整
        floor() 向下取整
  • 相关阅读:
    HybridAPP开发框架Ionic+AngularJS+Cordova搭建
    MySQL数据类型DECIMAL用法
    RabbitMQ用户管理
    Linux中Mysql root用户看不到mysql库问题解决方式
    RabbitMQ环境安装
    RabbitMQ简介
    Mysql根据一个基库生成其他库与其不同的库升级脚本
    关于中文乱码的解决方法(URL方式)
    java反射机制
    the jar file rt.jar has no source attachment
  • 原文地址:https://www.cnblogs.com/zwesy/p/9673789.html
Copyright © 2020-2023  润新知