1. ホーム
  2. php

[解決済み] カンマを小数点とする数値をfloatに変換する

2023-05-19 18:22:54

質問

コンマを小数点に、ドットを千の区切り文字にした価格表があります。

いくつかの例を挙げます。

12,30

116,10

1.563,14

これらはサードパーティからこのフォーマットで提供されています。これをfloatに変換して足し算したいのですが。

これを行うための最良の方法は何でしょうか? number_format はこのフォーマットでは動作しないようですし str_replace は各数値に一回以上実行しなければならないので、やりすぎのように思えます。

もっと良い方法はないでしょうか?ありがとうございます。

どのように解決するのですか?

使用方法 str_replace() を使ってドットを消すのはやりすぎではありません。

$string_number = '1.512.523,55';
// NOTE: You don't really have to use floatval() here, it's just to prove that it's a legitimate float value.
$number = floatval(str_replace(',', '.', str_replace('.', '', $string_number)));

// At this point, $number is a "natural" float.
print $number;

これは、ほぼ間違いなく、最もCPU負荷の低い方法です。また、これを行うために何か凝った関数を使用したとしても、その関数の内部ではこのようなことが行われている可能性が高いです。