/**
* Returns the string representation of this rational number as integer and fraction parts in the form "integerPart fractionNominator/fractionDenominator".
*
* <p>The integer part is omitted if it is 0 (when this absolute rational number is smaller than 1).</p>
* <p>The fraction part is omitted it it is 0 (when this rational number is an integer).</p>
* <p>If this rational number is 0, then "0" is returned.</p>
*
* <p>Example: <code>BigRational.valueOf(3.5).toIntegerRationalString()</code> returns <code>"3 1/2"</code>.</p>
*
* @return the integer and fraction rational string representation
* @see #valueOf(int, int, int)
*/
public String toIntegerRationalString()
{
BigDecimal fractionNumerator = numerator.remainder(denominator);
BigDecimal integerNumerator = numerator.subtract(fractionNumerator);
BigDecimal integerPart = integerNumerator.divide(denominator);
StringBuilder result = new StringBuilder();
if (integerPart.signum() != 0)
{
result.Append(integerPart);
}
if (fractionNumerator.signum() != 0)
{
if (result.Length > 0)
{
result.Append(' ');
}
result.Append(fractionNumerator.abs());
result.Append('/');
result.Append(denominator);
}
if (result.Length == 0)
{
result.Append('0');
}
return(result.ToString());
}