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

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 :前面的数大于后面的数


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 假设您输入的数为 x,则可以使用以下数学公式将其四舍五入到小数点后第三位: round(x, 3) 其中,round() 函数会将输入的数 x 四舍五入到指定的小数位数,这里是小数点后第三位。请注意,该函数的输出是一个数值类型的值,而非字符串。 例如,如果您输入的数为 3.1415926,则经过上述计算后,输出的结果为 3.142。 以下是一个 Python 代码示例,可以接受用户输入一个数,并将其四舍五入到小数点后第三位后输出: ``` x = float(input("请输入一个数:")) y = round(x, 3) print(y) ``` ### 回答2: 要格式化保留小数点后3位的数输出,可以使用以下方法: 1. 使用 round 函数:round(num, 3) 可以将 num 格式化保留小数点后3位的数。例如,输入 num=3.1415926,输出结果为3.142。 2. 使用字符串格式化:可以使用字符串格式化方法将数字格式化保留小数点后3位的字符串,然后输出。例如,可以使用字符串的 format 方法来实现这个目标,代码如下: ``` num = 3.1415926 formatted_num = "{:.3f}".format(num) print(formatted_num) ``` 这段代码的输出结果也是3.142。 无论是使用 round 函数还是使用字符串格式化,都可以实现将一个数格式化保留小数点后3位的数输出。 ### 回答3: 要实现输入一个数,并保留小数点后3位输出,可以使用Python语言的格式化输出函数进行操作。 在Python中,可以使用字符串的format()方法来实现格式化输出。使用花括号{}作为占位符,通过{}中的格式说明符指定输出的格式。 具体实现如下: ``` num = float(input("请输入一个数:")) formatted_num = "{:.3f}".format(num) print("格式化后的数为:", formatted_num) ``` 首先,使用input()函数获取用户输入的数,并将其转换为浮点数类型,存储在变量num中。 然后,利用format()方法对num进行格式化操作,使用格式说明符"{:.3f}",其中冒号:表示开始格式化操作,.3f表示保留小数点后3位。 最后,使用print()函数输出格式化后的数formatted_num。 这样,用户输入的数就能被格式化保留小数点后3位进行输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值