(方法总结)PHP如何格式化小数,保留小数点后几位

您所在的位置:网站首页 将浮点数四舍五入到十分位 (方法总结)PHP如何格式化小数,保留小数点后几位

(方法总结)PHP如何格式化小数,保留小数点后几位

2023-09-03 13:14| 来源: 网络整理| 查看: 265

PHP如何保留小数点后几位

1. round()

该函数可以按照指定的小数位数进行四舍五入运算的结果(并不会严格按指定位数输出)。除数值外,也可对日期进行舍入运算。 返回的是 float 类型

// round(要舍入的数, 规定小数点后的尾数可以为负数, 舍入模式的常量); round(100.78888888888, 8); // 100.78888889 round(100.899999999999, 8); // 100.9 round(1985.87, -1); // 1990.0 //默认,遇到5向上取整 round(100.555, 2, PHP_ROUND_HALF_UP); // 100.56 //遇到5向下取整, round(100.555, 2, PHP_ROUND_HALF_DOWN); // 100.55 // ceil()函数向上舍入为最接近的整数 // floor()函数向下舍入为最接近的整数

2. number_format()

该函数作用是对数字进行格式化可以按照指定小数位数输出,会对结果进行四舍五入运算。 返回的是string 类型

// number_format(要格式化的数字, 保留几位小数, 规定用作小数点的字符串,千位分隔符的字符串); number_format(100.78888888888, 8); // "100.78888889" number_format(100.899999999999, 8); // "100.90000000" number_format(10000000.7888888, 5, '*', '/'); // "10/000/000*78889"

3.bcadd() 该函数用于价格累加,可以返回指定指定小数位数输出。值得一提的是,函数不会对结果进行四舍五入运算。 返回的是string 类型

// bcadd(被加数, 加数, 保留几位小数); bcadd( 9.9999999999, 0, 8); // "9.99999999" bcadd(9.9999999999, 1, 8); // "10.99999999"

4.sprintf() sprintf() 函数的主要功能是把百分号(%)符号替换成一个作为参数进行传递的变量. 我们也可以用sprintf() 函数对小数格式化,它会对结果进行四舍五入运算。 返回的也是字符串

// sprintf(规定字符串以及如何格式化其中的变量, 规定插到 format 字符串中第一个 % 符号处的参数); //保留2位小数 sprintf("%.2f",100.999999); // "101.00" //替换 $number = 10; $str = "CSDN"; $txt = sprintf("%s今天有%u万的访问量", $str, $number); // "CSDN今天有10万的访问量"

详细请点击查看 菜鸟教程 对sprintf()的解析

替代小数方案:

其实我们可以完全可以使用整数来当做小数处理,比如金额: ¥100.9 我们存入数据库可以存入10000,取出来的时候 除以100即可,这样会避免掉一些小数对我们实际代码中的问题。

扩展PHP 的 bcmath:

//bcsub(被减数,减数,保留几位小数); bcsub(99.99, 11.11, 2); // "88.88" //bcmul(被乘数,乘数,保留几位小数); bcmul(11.11, 11.11, 2); // "123.43" //bcdiv(被除数,除数,保留几位小数); bcdiv(100, 3, 2); // "33.33" //bcpow(数字,次方,保留几位小数); bcpow(2.1,3, 2); // "9.26" //bcsqrt(被开方数,保留几位小数); 此函数开平方 bcsqrt( 3, 5) // "1.73205" //bccomp('数字','数字','精确位数') — 比较两个任意精度的数字 bccomp('1','2'); // -1 :前面的数小于后面的数 bccomp('1.00001','1' ,3); // 0 :前面的数等于后面的数 bccomp('1.00001','1',5); // 1 :前面的数大于后面的数


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3