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

このソリューションでは、最初の2つの小数点のみが保存されることに注意してください。のような数値がある場合は、10.123四捨五入3せずに単純に切り捨てられます。

于 2012-06-20T05:23:19.013 に答える
2

浮動小数点演算は、その定義によると正確ではありません。したがって、文字列の場合は値をfloatにキャストせず、floatの場合は文字列にキャストしないようにすることをお勧めします。

値型をチェックするように注意する関数は次のとおりです。

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

1文字だけを置き換える場合は、str_replaceの代わりにstrtrを使用してください

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

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

同じ出力ですが、strtrの方が優れています。

于 2012-07-13T08:16:29.443 に答える