I found the following graphical example of the "Hask" category, where objects are data types such as "Integer", "Float", "String" and the morphisms are mappings between them:
In my eyes this is not a category, because the composition (round . toFloat) != Idf:
$\mathrm{round}(4.5) = 4$
$\mathrm{round}(4) = 4.0$
$( \mathrm{toFloat} \circ \mathrm{round}) (4.5) = 4$
Questions: 1. Do I correctly understand that ( toFloat . round ) != Idf, therefore picture is not a category? 2. Could there ever be to morphisms from "Int" to "Float" inside a valid catetgory? For example, roundUp(4.5) = 5 and roundDown(5)?
PS the reason I ask this is that I keep seeing example of "NOT a category" like this:
that seem to be making an assumption that (h ∘ g) has to be an Id


This is a picture of a generating graph for a category. To get a category, you need to add in such composites as the one you described. In your non-category example, the author is probably claiming to give a picture of the entire category, so that it’s not permitted to introduce a new morphism $h\circ g$.