首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php表示浮点数

如何使用php表示浮点数
EN

Stack Overflow用户
提问于 2014-09-06 19:19:02
回答 3查看 242关注 0票数 0

我有一个价格数据库,它以浮点数的形式存储数字。这些都是在网站上展示的。价格可以采用这种格式。

代码语言:javascript
复制
x.x    (e.g. 1.4)  
x.xx   (e.g. 1.99)  
x.xxx  (e.g. 1.299) <-- new price format

我以前使用字符串格式或%.2f将价格标准化为小数点后两位,但现在我也需要显示3位,但前提是价格是小数点3位长。

代码语言:javascript
复制
e.g.   1.4  would display  1.40
       1.45 would display  1.45
       1.445 would display 1.445

上述格式将是给定输入的期望输出。

使用%.3f显示全部为3位数字。

代码语言:javascript
复制
e.g.   1.4  would display  1.400     
       1.45 would display  1.450    
       1.445 would display 1.445  

但这不是我想要的

也就是说,任何数字都应该显示2小数位,如果它有0 1或2小数位,如果它有3小数位或小数点以上,它应该显示小数3位。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-06 19:40:11

我会把它格式化成三个位置,然后修剪最后的0。

代码语言:javascript
复制
$formatted = number_format($value, 3, ".", "");
if (substr($formatted, -1) === "0") $formatted = substr($formatted, 0, -1);
票数 1
EN

Stack Overflow用户

发布于 2014-09-06 19:35:27

用这个家伙

代码语言:javascript
复制
number_format($data->price, 0, ',', '.');

http://php.net/manual/en/function.number-format.php

票数 0
EN

Stack Overflow用户

发布于 2014-09-07 11:33:24

这是我所做的,因为我需要处理一些特殊的情况,我在应用程序。

  1. 计算dec位置的数量($prices是数据库中的浮点数)。
  2. 使用开关语句根据位置中的计数设置格式。
  3. 对于所有小于3位的情况,小数点格式为2(零除外)
  4. 所有其他案例格式与3。 $decimals = strlen(substr(strrchr ($price,“.”),1);开关($decimals) { case 0:{ if ( $price != 0) { $price = number_format($price),2);} break;} case 1:{$price= number_format($price),2);}案例2:{ $price = number_format( $price ),2);中断;}默认情况:{$price= number_format($price),3);// dec放置所有其他价格;} }

谢谢你的帮助..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25703878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档