浏览 9320 次
锁定老帖子 主题:价格格式化
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-06
我看了一下。一般价格都是整数的。网页显示为:298.00等。地确.00很占地方。 现在修改方案为: 298.00格式化后显示298 298.50格式化显示为298.5 298.54格式化显示298.54 最开始想到的解决方法是用substr截掉小数位后面的,然后一位一位的判断(很笨的想法,还好没去实现)。后来翻了php手册发现很好用的方法,推荐一下 <? function cutzero($value) { return preg_replace("/(\.\d+?)0+$/", "$1", $value)*1; } ?> Some examples: <? cutzero("4.7600"); // returns 4.76 cutzero("4.7604") // returns 4.7604 cutzero("4.7000"); // returns 4.7 cutzero("4.0000"); // returns 4 ?> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-12-06
用函数
<?php echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06 |
|
返回顶楼 | |
发表时间:2011-12-06
phper.yang 写道 用函数
<?php echo round(3.4); // 3 echo round(3.5); // 4 echo round(3.6); // 4 echo round(3.6, 0); // 4 echo round(1.95583, 2); // 1.96 echo round(1241757, -3); // 1242000 echo round(5.045, 2); // 5.05 echo round(5.055, 2); // 5.06 round把价格四舍五入了,而且后面还要带保留几位小数。 |
|
返回顶楼 | |
发表时间:2011-12-19
最后修改:2011-12-19
这个方法看起来很不实用啊, 就算是占位的.00一般也是为格式精度和美观加上的, 如果非要这样做, 可以试试用类型强制转换.
echo (float) "123.4500"; echo floatval("123.4500"); |
|
返回顶楼 | |
发表时间:2011-12-23
js来做处理呗
|
|
返回顶楼 | |
发表时间:2011-12-26
jinhanjiang 写道 最近网站上因为显示的价格长度太长。导致页面乱掉。美工不调试。让程库上处理一下,小数位后面为0,就不显示0。
我看了一下。一般价格都是整数的。网页显示为:298.00等。地确.00很占地方。 现在修改方案为: 298.00格式化后显示298 298.50格式化显示为298.5 298.54格式化显示298.54 最开始想到的解决方法是用substr截掉小数位后面的,然后一位一位的判断(很笨的想法,还好没去实现)。后来翻了php手册发现很好用的方法,推荐一下 <? function cutzero($value) { return preg_replace("/(\.\d+?)0+$/", "$1", $value)*1; } ?> Some examples: <? cutzero("4.7600"); // returns 4.76 cutzero("4.7604") // returns 4.7604 cutzero("4.7000"); // returns 4.7 cutzero("4.0000"); // returns 4 ?> 这些归划给前端处理比较好,用样式控制显示 |
|
返回顶楼 | |