+ /**
+ * Return a {@link Decimal64} with specified scale and unscaled value.
+ *
+ * @param scale scale to use
+ * @param unscaledValue unscaled value to use
+ * @return A Decimal64 instance
+ * @throws IllegalArgumentException if {@code scale} is not in range {@code [1..18]}
+ */
+ public static Decimal64 of(final int scale, final long unscaledValue) {
+ return new Decimal64(offsetOf(scale), unscaledValue);
+ }
+
+ // >>> FIXME: these need to take a scale value and perform a range check. we also need truncating counterparts