【问题标题】:Cast string with comma to float with dot用逗号转换字符串以用点浮动
【发布时间】:2010-06-08 11:11:13
【问题描述】:

当我尝试投射时

$value = floatval('14,5833');

对于float 类型,我希望得到一个带有点的值,例如14.5833,但它返回给我14,5833

我应该怎么做?

我不想使用任何字符串替换函数。

【问题讨论】:

标签: php casting floating-point


【解决方案1】:

一个例子对我有帮助:

<?php
setlocale(LC_NUMERIC, 'en_US');
echo 1.234; // 1.234
setlocale(LC_NUMERIC, 'et_EE.UTF-8');
echo 1.234; // 1,234
echo number_format( 1.234, 2, '.', '' ); // 1.23 
?>

【讨论】:

  • 请注意,number_format() 会将值四舍五入。所以像 2.3456 这样的东西将被格式化为 2.35 而不是 2.34
  • 这对我来说永远不会转换为 1,234,但在使用带有默认 php PHP 5.5.9-1ubuntu4.11的 ubuntu 14.04 时总是 1.234@
  • 看来必须在 ubuntu 上显式安装语言环境,例如 $ sudo apt-get install language-pack-et-base
【解决方案2】:

你有两个选择:

  • 将语言环境设置为使用点而不是逗号的内容。例如。 setLocale(LC_ALL, 'fr_BE.UTF-8');
  • 在内部继续使用逗号,当你想输出那个数字时,使用number_format

【讨论】:

    【解决方案3】:

    localeconvsetlocale检查decimal_point

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      相关资源
      最近更新 更多