#php #string
#php #строка
Вопрос:
У меня есть следующий код:
<?php
$amount = '$40.0';
?>
Я хочу получить только число 40 (в форме с плавающей запятой) из строки $ 40, т.Е. После исключения знака доллара. Число, введенное пользователем, может быть даже плавающим, например, $ 345,894534. В случае числа с плавающей запятой я должен получить все число с плавающей запятой, кроме знака доллара. Кроме того, переменная может быть пустой время от времени, поэтому операция приведения к типу должна выполняться только тогда, когда переменная содержит некоторое значение. Как я должен сделать это оптимальным образом и используя готовые функции, доступные в PHP? Может кто-нибудь, пожалуйста, помочь мне в этом отношении?Заранее спасибо.
Комментарии:
1. Я бы рекомендовал регулярное выражение. regular-expressions.info Небольшая работа с
substr
тоже была бы хороша. Это настолько тривиально, что «наиболее оптимальный» вряд ли имеет значение.2. @MarkBaker: Я исправил свой код.
Ответ №1:
$amount = floatval(str_replace('$','','$40.2356')); //0 for empty string
Комментарии:
1. Обратите внимание, что вы не должны использовать числа с плавающей запятой для денежных значений.
2. @deceze это правда, но OP использовал это слово
float
так много раз, что я ничего не мог с этим поделать.
Ответ №2:
$amount = '$345.894534';
$trimmed = ltrim($amount, "$"); // will return 345.894534