将货币字符串转换为数字 Drupal Views / PHP

Posted

技术标签:

【中文标题】将货币字符串转换为数字 Drupal Views / PHP【英文标题】:Convert a currency string to a number Drupal Views / PHP 【发布时间】:2015-03-04 09:50:13 【问题描述】:

我将 CiviCRM (mysql) 数据库中的一个字段输入到货币的 Drupal 视图中:

€ 350.00

如何将此货币/字符串转换为数字格式以对其进行数学运算?

我试过了

从显示中删除该字段并将其输入全局数学字段以“清理”它,但它只是显示为零(它是一个字符串,因此数学字段无法读取它)

将其输入全局文本字段会产生与上述相同的输出

关闭字段本身和我输入的全局数学字段中的所有格式,输出为零,因为它仍然未被识别为数字

【问题讨论】:

删除不必要的文本有助于读者,使问题清晰,分组尝试 【参考方案1】:

您需要两个步骤:

    安装Views php (7.x-2.x-dev) - 这会给你一个全球 视图中的 PHP 字段

    排除在视图中显示值的原始字段(例如field_currency)(使用复选框),然后在附加的 PHP 字段中使用排除字段的值:

    输入值代码:preg_match("#([0-9\.]+)#", $row->field_currency, $match); return $match[0]; 在输出代码中:<?php echo $value; ?>

【讨论】:

【参考方案2】:

你可以使用这样的函数:

function extractNumber($str) 
  return preg_replace('/[^0-9.]+/i','',$str);


echo extractNumber('€ 350.00');

这将导致:'350.00' 这是数字。对于“€ 1,350.00”,它将返回“1350.00”。

【讨论】:

以上是关于将货币字符串转换为数字 Drupal Views / PHP的主要内容,如果未能解决你的问题,请参考以下文章

将货币字符串转换为十进制?

文本更改时将数字转换为货币格式

将 JavaScript 数字转换为货币格式,但没有“$”或任何货币符号 [重复]

通过jquery将货币转换为小数

如何将数字格式化为货币字符串

JavaScript 将货币转换为数字