code: public static BigMoney of(CurrencyUnit currency, double amount) {
          MoneyUtils.checkNotNull(currency, "Currency must not be null");
          return BigMoney.of(currency, BigDecimal.valueOf(amount).stripTrailingZeros());
      }
docs: Obtains an instance of {@code BigMoney} from a {@code double} using a well-defined conversion.
  <p>
  This allows you to create an instance with a specific currency and amount.
  <p>
  The amount is converted via {@link BigDecimal#valueOf(double)} which yields
  the most expected answer for most programming scenarios.
  Any {@code double} literal in code will be converted to
  exactly the same BigDecimal with the same scale.
  For example, the literal '1.425d' will be converted to '1.425'.
  The scale of the money will be that of the BigDecimal produced, with trailing zeroes stripped,
  and with a minimum scale of zero.
  
  @param currency  the currency, not null
  @param amount  the amount of money, not null
  @return the new instance, never null