**Describe the bug**

JSONExtract returns 0 for numbers with floating-point for type *float / Float32*.

**How to reproduce**

```sql
WITH '{ "v":1.1}' AS raw
SELECT 
    JSONExtract(raw, 'v', 'float') AS float32_1,
    JSONExtract(raw, 'v', 'Float32') AS float32_2,
    JSONExtractFloat(raw, 'v') AS float64_1,
    JSONExtract(raw, 'v', 'double') AS float64_2

/*
┌─float32_1─┬─float32_2─┬─float64_1─┬─float64_2─┐
│         0 │         0 │       1.1 │       1.1 │
└───────────┴───────────┴───────────┴───────────┘
*/
```

```sql
WITH '{ "v":1E-2}' AS raw
SELECT 
    JSONExtract(raw, 'v', 'float') AS float32_1,
    JSONExtract(raw, 'v', 'Float32') AS float32_2,
    JSONExtractFloat(raw, 'v') AS float64_1,
    JSONExtract(raw, 'v', 'double') AS float64_2

/*
┌─float32_1─┬─float32_2─┬─float64_1─┬─float64_2─┐
│         0 │         0 │      0.01 │      0.01 │
└───────────┴───────────┴───────────┴───────────┘
*/
```

**Expected behavior**

I think either need to add support *float / Float32* type or throw an exception to point to need to use *double / Float64* type.

**Additional context**
CH v. 20.6.4.44

for (size_t index = 0; (index != nested.size()) && (it != array.end()); ++index)
                {
                    if (nested[index]->insertResultToColumn(tuple.getColumn(index), *it++))
                        were_valid_elements = true;
                    else
                        tuple.getColumn(index).insertDefault();
                }
                set_size(old_size + static_cast<size_t>(were_valid_elements));
                return were_valid_elements;
            }
            if (element.isObject())
            {
                auto object = element.getObject();
                if (name_to_index_map.empty())
                {
                    auto it = object.begin();
                    for (size_t index = 0; (index != nested.size()) && (it != object.end()); ++index)
                    {
                        if (nested[index]->insertResultToColumn(tuple.getColumn(index), (*it++).second))
                            were_valid_elements = true;
                        else
                            tuple.getColumn(index).insertDefault();
                    }
                }
                else
                {
                    for (auto [key, value] : object)
                    {
                        auto index = name_to_index_map.find(key);
                        if (index != name_to_index_map.end())