in reply to finding the correct integer

What precision are you expecting? Math::BigFloat may assist, but it doesn't seem like you're needing that hammer. Documentation on int states, You should not use this function for rounding: one because it truncates towards 0, and two because machine representations of floating-point numbers can sometimes produce counterintuitive results. Furthermore, Usually, the sprintf, printf, or the POSIX::floor and POSIX::ceil functions will serve you better than will int. You're already using POSIX so take a look at ceil or floor, depending on what you're expecting.