PHP格式字符串,以两个小数点分隔

PHP格式字符串,以两个小数点分隔,php,string,format,decimalformat,Php,String,Format,Decimalformat,用户可以按以下格式输入值: 1.00 一, 1,00 现在我需要返回使用两个小数点(,)格式化的值。当我使用: 数字格式($request->amount,2,',','') 使用“1,00”作为输入,我得到以下错误: Notice: A non well formed numeric value encountered 解决这一问题的最佳方法是什么,并且仍然能够处理所有三种类型的输入 下面是一个简短的例子: input of user:|output: 1.00 1,

用户可以按以下格式输入值:

  • 1.00
  • 一,
  • 1,00
现在我需要返回使用两个小数点(,)格式化的值。当我使用:

数字格式($request->amount,2,',','')

使用“1,00”作为输入,我得到以下错误:

Notice: A non well formed numeric value encountered
解决这一问题的最佳方法是什么,并且仍然能够处理所有三种类型的输入

下面是一个简短的例子:

input of user:|output:
1.00           1,00
1              1,00 
1,51           1,51
试试这个:

number_format((int)$request->amount, 2, ',','');
试试这个:

number_format((int)$request->amount, 2, ',','');

以下方面应起作用:

$request->amount = str_replace(",", ".", $request->amount);
number_format($request->amount, 2, ',','');

以下方面应起作用:

$request->amount = str_replace(",", ".", $request->amount);
number_format($request->amount, 2, ',','');

也许我误解了这个问题,但我不相信你可以在数值中使用逗号。您可以使用小数点(.),就像上面示例中的第一个输入值一样。为什么要用逗号来代替?用户输入值加逗号??许多语言环境在数字中与“,”和“.”的用法相反,即使用逗号来分隔数字的整部分和小数部分。要了解更多您可能想知道的详细信息,请参阅,可能我误解了这里的问题,但我不相信您可以在数值中使用逗号。您可以使用小数点(.),就像上面示例中的第一个输入值一样。为什么要用逗号来代替?用户输入值加逗号??许多语言环境在数字中与“,”和“.”的用法相反,即使用逗号来分隔数字的整部分和小数部分。如需了解更多详细信息,请参阅通过将$request->amount转换为整数,您将丢失小数点或逗号后的数字,因此上述操作将不起作用。例如:如果我将1,51或1.51传递给此,它将输出1,00。通过将$request->amount转换为整数,您将丢失小数点或逗号后的数字,因此上述操作将不起作用。例如:如果我将1,51或1.51传递给这个,它将输出1,00。