PHP number_format()decimal.99变为.00

PHP number_format()decimal.99变为.00,php,decimal,zero,number-formatting,Php,Decimal,Zero,Number Formatting,我想把一个“肮脏”的数字变成一个正确的货币价格。 输入的数字大约是23.99000,我想显示23,99+欧元符号 我用这个: $price = number_format($price, 2, ',', '')." €"; 但结果将是23,00欧元,而不是23,99欧元 我做错了什么?谢谢 为什么不简单地使用round $price = round($price, 2)." €"; 为什么不简单地使用round呢 $price = round($pri

我想把一个“肮脏”的数字变成一个正确的货币价格。 输入的数字大约是23.99000,我想显示23,99+欧元符号

我用这个:

$price = number_format($price, 2, ',', '')." €";
但结果将是23,00欧元,而不是23,99欧元


我做错了什么?谢谢

为什么不简单地使用round

$price = round($price, 2)." €";

为什么不简单地使用round呢

$price = round($price, 2)." €";

试着这样做:

<?php
$price = 23.99000;
$price = sprintf("%01,2f", $price).' &euro;';
echo $price;

f
意味着它将把字符串当作一个浮点,并相应地格式化。

尝试以下方法:

<?php
$price = 23.99000;
$price = sprintf("%01,2f", $price).' &euro;';
echo $price;


f
表示它将字符串视为浮点,并相应地格式化。

可能是错误的舍入。请在操作前向我们显示
$price
的确切内容。确切的
$price
是什么?花车?一根绳子?给我们看一个
var\u转储($price)
。price的确切定义是$price=23.99000I使用var\u转储,它说string,然后它是一个字符串。把它变成一个浮点数,问题就解决了:-)可能舍入不好。请在操作前向我们显示
$price
的确切内容。确切的
$price
是什么?花车?一根绳子?给我们看一个
var\u转储($price)
。price的确切定义是$price=23.99000I使用var\u转储,它说string,然后它是一个字符串。将其转换为浮点数,问题已解决:-)谢谢,但我需要使用欧洲十进制标点符号,即逗号而不是点。不,我的意思是输入的数字带有anglosaxon(点)十进制分隔符,我需要将其转换为欧洲(逗号)十进制分隔符。这就是为什么我使用数字格式而不是round()哦,好吧,那么在调用数字格式时,您应该尝试将$price转换为float。非常感谢!我刚刚发现stackoverflow.com是多么有用。太神了谢谢,但我需要使用欧洲十进制标点符号,即逗号而不是点。不,我的意思是输入的数字带有anglosaxon(点)十进制分隔符,我需要将其转换为欧洲(逗号)十进制分隔符。这就是为什么我使用数字格式而不是round()哦,好吧,那么在调用数字格式时,您应该尝试将$price转换为float。非常感谢!我刚刚发现stackoverflow.com是多么有用。太神了谢谢,但如下所述,我还需要使用逗号-十进制分隔符,而不是点分隔符:)无论如何,我解决了这个问题,我错误地设置了错误的变量(已格式化)。哦,对不起,编辑代码以反映-您所需要做的就是将
更改为
,简单。谢谢,但如下所述,我还需要使用逗号-小数分隔符,而不是点分隔符:)无论如何,我解决了这个问题,我错误地设置了错误的变量(已经格式化)。哦,对不起,编辑代码以反映-您需要做的就是将
更改为
,简单。