<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _format_to_floating_precision(self, precision):
 """ Format a nonzero finite BigFloat instance to a given number of significant digits. Returns a triple (negative, digits, exp) where: - negative is a boolean, True for a negative number, else False - digits is a string giving the digits of the output - exp represents the exponent of the output, The normalization of the exponent is such that <digits>E<exp> represents the decimal approximation to self. Rounding is always round-to-nearest. """

        if precision <= 0:
            raise ValueError("precision argument should be at least 1")

        sign, digits, exp = _mpfr_get_str2(
            10,
            precision,
            self,
            ROUND_TIES_TO_EVEN,
        )

        return sign, digits, exp - len(digits)