php货币

I need to know how to take

10.25 and turn it to 1025

basically it needs to remove full stop from any number for e.g. 1500.25 it should be 150025

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

if the currency is a float: multiply with 100 (and cast the result to int).

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

note that this solution will only get the first two decimals saved - if you have a number like 10.123, the 3 will simply be cut off without rounding.

Floating-point arithmetic is by it's definition not exact. Therefore it's worthwhile to NOT cast the value to a float if it's a string, and avoid casting it into a string if it's a float.

Here's a function which takes care to check the value type:

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;
  }
}

if you want replace one character only, use strtr instead str_replace

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

and

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

same output but strtr is better.