code: public static Money of(CurrencyUnit currency, double amount) {
          return Money.of(currency, BigDecimal.valueOf(amount));
      }
docs: Obtains an instance of {@code Money} from a {@code double} using a
  well-defined conversion.
  <p>
  This allows you to create an instance with a specific currency and amount.
  No rounding is performed on the amount, so it must have a scale compatible
  with the currency.
  <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.45d' will be converted to '1.45'.
  
  @param currency  the currency, not null
  @param amount  the amount of money, not null
  @return the new instance, never null
  @throws ArithmeticException if the scale exceeds the currency scale