Source: app/util/FractionalNumberToLocale.js

/**
 * Converts fractional number in decimal (only support mantissa of 5).
 * @function
 * @param {number} value - fractional number in integer and decimal (1.5)
 *
 * Locale files cannot handle decimal correctly, this function
 * will split the decimal and pass to the Locale files as an object with {NUMBER, HALF}
 * example: getMessage('general.number.shortLabel', fractionalNumberToLocale(number))
 */
const fractionalNumberToLocale = (value = 0) => {
  const integerPart = Math.floor(value);
  const fractionalPart = Math.floor((value - integerPart) * 10);
  if (fractionalPart !== 5 && fractionalPart !== 0) {
    // eslint-disable-next-line no-console
    console.warn(
      `Number provider to fractionalNumberToLocale with value ${fractionalPart} is not supported. Expected 0 or 5.`,
    );
  }
  return { NUMBER: integerPart, HALF: fractionalPart };
};

export default fractionalNumberToLocale;