1

我需要知道如何服用

10.25 并将其转为 1025

基本上它需要从任何数字中删除句号,例如 1500.25 它应该是 150025

4

4 回答 4

5
$number = str_replace('.','',$number);
于 2012-06-20T05:22:54.903 回答
2

如果货币是浮点数:乘以 100(并将结果转换为int)。

$currency = 10.25;
$number = (int)($currency * 100); //1025

请注意,此解决方案只会保存前两位小数 - 如果您有类似 的数字10.1233则只会将其截断而不进行四舍五入。

于 2012-06-20T05:23:19.013 回答
2

浮点运算的定义并不准确。因此,如果它是一个字符串,则不要将值转换为浮点数,如果它是浮点数,则避免将其转换为字符串。

这是一个检查值类型的函数:

function toCents($value) {
  // Strings with a dot is specially handled
  // so they won't be converted to float
  if (is_string($value) && strpos($value, '.') !== false) {
    list($integer, $decimals) = explode('.', $value);
    $decimals = (int) substr($decimals . '00', 0, 2);
    return ((int) $integer) * 100 + $decimals;

  // float values are rounded to avoid errors when a value
  // like ".10" is saved as ".099"
  } elseif (is_float($value) {
    return round($value * 100);

  // Other values are strings or integers, which are cast
  // to int and multiplied directly.
  } else {
    return ((int) $value) * 100;
  }
}
于 2012-06-20T05:48:33.937 回答
0

如果您只想替换一个字符,请使用 strtr 代替 str_replace

$number = str_replace('.','',$number);

$number = strtr($number, array('.', ''));

相同的输出,但 strtr 更好。

于 2012-07-13T08:16:29.443 回答