> I need db to store any value the user puts. any range!
Think again. There must be a limit to column width, and it is your job to define it.
> could be 10.000.000 (ten million) or 1.10
Again, you have to define a maximum value that can be stored. If it's ten million and three decimals, for example, that's decimal(11,3).
> They must be on the same table! makes no sense if I have to make diferent fields just by guessing how many zeros the user might enter!
Read again. Nobody mentioned different fields, nobody mentioned guessing.
drop table if exists t;
create table t(d decimal(11,3));
insert into t values(10000000.001),(1.001);
select * from t;
+--------------+
| d |
+--------------+
| 10000000.001 |
| 1.001 |
+--------------+
If you want to control formatting more precisely, write a function in MySQL, or in your app language, to cover all formatting possibilities you wish to cover.