Эта функция совместима для чисел с точками или запятыми как десятичные числа
function floatvalue ($ val) {$ val = str_replace (",", ".", $ val); $ val = preg_replace ('/\.(?=.*\.)/', '', $ val); return floatval ($ val); } $ number = "1.325.125,54"; echo floatvalue ($ number); // Выход 1325125.54 $ number = "1,325,125.54"; echo floatvalue ($ number); // Выход 1325125.54
Обычно класс используется для группировки данных вместе с функциональными возможностями. Похоже, что класс Name
является просто оболочкой для String
без добавления каких-либо функций. На этом этапе вашей карьеры Java, вероятно, лучше объявить String name;
в классе Employee
и удалить класс Name
все вместе. (Обратите внимание, что это приведет к удалению ошибки из вашего кода, описанного в Hovercraft Full of Eels.)
Самая распространенная причина StackoverflowExceptions заключается в том, чтобы неосознанно иметь рекурсию, и это происходит здесь? ...
public Name(String name)
{
Name employeeName = new Name(name); // **** YIKES!! ***
this.name = employeeName;
}
Bingo: recursion!
Этот конструктор создаст новый объект Name, конструктор которого создаст новый объект Name, конструктор которого будет ... и таким образом вы будете продолжайте создавать новые объекты Name до бесконечности или пока не закончится память стека. Решение: не делайте этого. Назначить имя для строки:
class Name {
String name; // ***** String field!
public Name(String name)
{
this.name = name; // this.name is a String field
}