zoukankan      html  css  js  c++  java
  • 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() 向下取整
  • 相关阅读:
    模块二 GO语言进阶技术-panic函数、recover函数以及defer语句(上)
    模块二 GO语言进阶技术-错误处理(下)
    模块二 GO语言进阶技术-错误处理(上)
    模块二 GO语言进阶技术-if语句、for语句和switch语句
    模块二 GO语言进阶技术-GO语句及其执行规则(下)
    模块二 GO语言进阶技术-go语句及其执行规则(上)
    模块二 GO语言进阶技术-关于指针的有限操作
    模块二 GO语言进阶技术-接口类型的合理运用
    模块二 GO语言进阶技术-结构体及其方法的使用法门
    模块二 GO语言进阶技术-使用函数的正确姿势
  • 原文地址:https://www.cnblogs.com/zwesy/p/9673789.html
Copyright © 2011-2022 走看看