我正在尝试创建一个电子商务商店,我们的价格需要随着不同国家的汇率而波动,所以我要处理很多小数位。
我想要做的是将原始价格四舍五入到最接近的完整数字(因为他们可以保留更改)。但后来我想将其格式化为两位小数的货币。
nonce
格式化为无小数位后,它开始读取','作为小数分隔符而不是千位分隔符,并格式化两位小数。
它还会出现以下错误:
<?php
$number = 12345.6789;
echo $number; // outputs '12345.6789'
$number = number_format($number,0);
echo $number; // outputs '12,346'
$number = number_format($number,2);
echo $number; // outputs '12.00'
?>
我将非常感谢您对如何实现我正在寻找的任何帮助或建议。
答案 0 :(得分:0)
// apply intval获取低整数值(用于更改目的)
$number = 12345.6789;
echo $number; // outputs '12345.6789'
echo intval($number)."<br/>"; // outputs '12345'
echo number_format(intval($number),0,'.','.'); // outputs '12.345'
echo number_format(intval($number),0,'.',','); // outputs '12,345'
答案 1 :(得分:0)
使用round
功能,然后使用number_format
。
// returns 12,346.00
number_format(round(12345.6789), 2);
答案 2 :(得分:0)
函数number_format
接受4个参数。默认情况下,一个点将用作十进制分隔符,逗号为千位分隔符(12345.6789在您第一次调用后变为12,346;除外)。它没有明确记录,但number_format也是圆形的。
http://php.net/manual/de/function.number-format.php
string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )
您收到错误是因为您重复使用相同的变量$number
。在您第一次打电话给number_format
之后,您再也没有浮动值了。
<?php
$number = 12345.6789;
echo $number."<br>"; // outputs 12345.6789
echo number_format($number,0)."<br>"; // outputs 12,346
echo number_format($number,2)."<br>"; // outputs 12,345.68
?>
如果您不确定变量中的内容,可以将floatval
应用于其中。
echo number_format(floatval($number),2);
答案 3 :(得分:0)
如文档中所指定,number_format返回一个字符串值,您不能将其重用为数字。 使用函数round()来舍入您的数字,如果您想将其四舍五入到使用ceil()的直接上整数。
number_format(round(12345.6789), 2);
答案 4 :(得分:0)
您正在寻找的PHP函数是money_format()http://php.net/manual/en/function.money-format.php通过手册页阅读(包括评论)