一般交易中保留的数字的小数位数为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() 向下取整

mysql 和php 保留2位小数的更多相关文章

  1. Mysql计算并保留两位小数

    如:123456.789 转成 123456.79 自动,));

  2. layui table 前台数字格式保留两位小数,不足补0(mysql 数据库)

    layui table 对于后台json数据,有数字的,默认不会原样显示,而是只取数值,即100.00显示为100.如果想原样显示,需转为字符串. 项目采用mysql数据库,字段类型为decimal( ...

  3. mysql保留2位小数字段如何设置 浮点数

    保留2位小数字段如何设置 方法1: select cast(avg(75.3333333) as decimal(10,2)) as '平均分' );#format第一个参数传递浮点数

  4. mysql保留两位小数

    --这个是保留整数位 SELECT CONVERT(4545.1366,DECIMAL); --这个是保留两位小数 ,)); --这个是截取两位,并不会四舍五入保留两位小数 );

  5. MySQL保留2位小数

    1.round(x,d),四舍五入.round(x) ,其实就是round(x,0),也就是默认d为0 select round(110.35,1); # 110.4 2.TRUNCATE(x,d), ...

  6. js验证输入的是否是数字,小数保留几位小数

    1.验证方法 validationNumber(e, num)  e代表标签对象,num代表保留小数位数 function validationNumber(e, num) { -]+\.?[-]*$ ...

  7. java使double保留两位小数的多方法 java保留两位小数

    这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧 复制代码 代码如下: mport java.text.DecimalFormat; DecimalFormat    d ...

  8. PHP保留2位小数 格式化小数、浮点数

    JS保留两位小数例子 四舍五入使用函数 toFixed() <html> <head> </head> <script language="java ...

  9. js保留两位小数

    js保留两位小数四舍五入: (Math.floor(until_price*100)/100).toFixed(2);//会四舍五入   保留两位小数 且不四舍五入(三种方式,请用最后一种): var ...

随机推荐

  1. Memcached服务加固方案

    配置访问控制.建议用户不要将服务发布到互联网上而被黑客利用,可以通过ECS安全组规则或IPtables配置访问控制规则.例如,在Linux环境中运行命令,在IPtables中添加此规则只允许192.1 ...

  2. php 请求另一个服务器接口返回数据

    <?php /** * Created by PhpStorm. * User: thinkpad * Date: 2015/7/17 0017 * Time: 13:24 */ class A ...

  3. Linux上安装Oracle的辛酸史

    下个礼拜就要开始学习Oracle了,得嘞先在我的CentOS7上装一个(貌似听说Oracle装在Oracle Linux能得到更好的性能,不过懒得下Oracle Linux镜像,在CentOS7上装个 ...

  4. 可长点心吧-sort

    sort #<algorithm> 用的时候一定是 从 第一个(你想要排序的范围内的) 到 最后一个+1 真的错了不止一次了 真的长点心吧

  5. node.js 基础二 开启服务器监听

    1.server.js 2.监听 一 server.js 二 监听 运行server.js后,浏览器打开:http://localhost:8888/ //====================== ...

  6. C. Report

    题意:给出n个无序的数以及m个操作,每个操作由两个数组成,第一个数是操作的方式,第二个数 i 是操作的范围,若第一个数是1,则给 1-i 个数按升序排序,若第二个数是2,则给 1-i 个数按降序排列. ...

  7. SkylineGlobe 如何实现FlyTo定位到目标点之后触发的事件函数

    之前有朋友问,如何在Skyline里面实现FlyTo定位到目标点之后触发的事件函数呢? 下面的这段代码,就可以帮你解决这个问题. <!DOCTYPE html PUBLIC "-//W ...

  8. char.IsLetter的使用

    先看一下下面的代码,大家会觉得控制台输出什么? 输出:Chiantxt  .对吗? 因为你看到char.IsLetter这个方法的文字的注释是这样写的: 但实际上输出的结果是这样的: ??? 怎么还输 ...

  9. Docker中运行Dockerfile时报错“cannot allocate memory”

    今天运行Dockerfile脚本时报错了,现记录下来: Step / : RUN -bin/myagent symlink /proc/mounts /var/lib/docker/overlay/2 ...

  10. 使用gulp和bable实现实时编译ES6代码

    这篇文章最初发表在我自己折腾的博客站点上:使用gulp和bable实现实时编译ES6代码,该博客用了一位前辈开源的源码,基于thinkjs和vuejs开发,欢迎大家来逛逛. 问题描述> 项目开发 ...