# Deprecated: Implicit conversion from float to int loses precision

I am playing around with getting hours and minutes out of seconds, and we all see the many many questions that are similar to this, but I am not sure what solution is the best

``````\$seconds = 6530;

\$secs = \$seconds % 60;
\$hrs = \$seconds / 60;
\$mins = \$hrs % 60; // Causing the issue
\$hrs = \$hrs / 60;

var_dump(\$hrs, \$mins, \$secs);
``````

This is the code, which gives me:

``````Deprecated: Implicit conversion from float 108.83333333333333 to int loses precision
float(1.8138888888888889)
int(48)
int(50)
``````

I understand the error, thats not the issue, the issue is how to solve it. I have tried

``````\$mins = (int) (\$hrs % 60);

and

\$mins = intval(\$hrs % 60);

as well as

\$mins = (int) round(\$hrs % 60);
``````

But I get the same issue.

Here is the sandbox for reference: https://onlinephp.io/c/b5b45

What is the proper way to solve this? I do want this as an `int`, but not sure how to properly convert it.

### >Solution :

If you want to int your float to int, you can use some function such a `floor` `round` etc..

in your case you are looking for floor so you should do:

``````<?php

\$seconds = 6530;

\$secs = \$seconds % 60;
\$hrs = \$seconds / 60;
\$hrs = floor(\$hrs);
\$mins = \$hrs % 60;
\$hrs = \$hrs / 60;

var_dump(\$hrs, \$mins, \$secs);
``````

That’s giving:

``````float(1.8)
int(48)
int(50)
``````