Well using Fixed-point can solve a technical issue of not having floating-point hardware, it is not the only reason for using it.
Fixed-point and Floating-point have different Pros/Cons. In many (all?) countries, it is illegal to use floating-point for representing money in software that deals with real money. It is recommended to avoid using floating-point for representing time in games.
So, what’s wrong with using floating-point for everything?
As the floating-point … floats around, the size of the step between adjacent values increases or decreases. And that is not acceptable in some use cases. Imagine a bank that used floating-point variables to represent money.
type money is digit 6; -- This won't actually cause the problem shown because the compiler is free to use more precision that this. This is only a minimum.
If you have a balance of $3,000.00 and you deposit your paycheck of $1,560.32 then your new balance would be $4,560.32. Everything is fine so far.
But what if you are saving up for a down payment on a house, so you are not spending your money as fast as you can. 
Now you have a balance of $10,000.00 and you deposit your paycheck of $1,560.32. Now you have 11,560.30! What happen to the 2 cents?!?!
Lets look at how it is represented as a float of 6 digits:
1.00000 x 10^4 | 10,000.0
+ 1.56032 x 10^3 | 1,560.32
----------------- | ---------
= 1.15603 x 10^4 | 11,560.3
Well, you ran out of precision and the cents dropped off.
If you use a fixed point with a step of 0.01 then this would never happen.
type money is delta 0.01 range -9_999.99 .. 9_999.99 with Small => 0.01;
Now our precision is fixed to the penny. This limits our range but we won’t quietly drop your money.
There is a similar problem with games that use a float to store the game time. Often games intend to track time down to fractions of a second. If the game only lasts a few hours it doesn’t really mater which is used to store the time. But if the game runs for weeks or month or even years, weird problems may crop up in the game because the programmers assumed a game time resolution in some fraction of seconds but the precision of the timer has been pushed out of the fractions of seconds up to the seconds or tens of seconds.