Я прочитал некоторые данные из файла csv. Каждая строка в файле имеет значение float. эти значения могут быть:Исправить значения поплавка
- .123: начиная с периода, так что мне нужно добавить ноль раньше.
- 1,23: наличие разделительной запятой ',' вместо периода, поэтому мне нужно изменить это.
- 1.2e3, имеющий экспоненциальный формат, поэтому мне нужно преобразовать его в десятичный формат.
Я не могу использовать функцию number_format
, потому что я не могу установить количество знаков после запятой (числа с плавающей точкой не имеют фиксированную длину дробной части, и мы хотим, чтобы принять их, как они не потерять данные).
Вот что я пробовал до сих пор; Я построил две функции, первый фильтр поплавки, второй корректирует их, когда фильтр возвращает ложь:
function validateFloat($float){
if(!filter_var($float,FILTER_VALIDATE_FLOAT,array('flags' => FILTER_FLAG_ALLOW_FRACTION))){
return false;
}
}
function correctFloat($float){
if (validateFloat($float)==false){
$number = number_format($float,null,'.');
str_replace($number,'',$line);
}
}
Я не знаю, как построить функцию correctFloat
. Какие-либо предложения ? Ценить это.
круто, что, если он начинается с «» ? – Somar
floatval колодки это. Используйте обновление, которое я просто сделал с ошибкой '$ value' много ... – nerdlyist
Это просто! Спасибо. – Somar