Class Fiat

java.lang.Object
org.bitcoinj.base.utils.Fiat
All Implemented Interfaces:
Comparable<Fiat>, Monetary

public final class Fiat extends Object implements Monetary, Comparable<Fiat>
Represents a monetary fiat value. It was decided to not fold this into Coin because of type safety. Fiat values always come with an attached currency code. This class is immutable.
  • Field Details

    • SMALLEST_UNIT_EXPONENT

      public static final int SMALLEST_UNIT_EXPONENT
      The absolute value of exponent of the value of a "smallest unit" in scientific notation. We picked 4 rather than 2, because in financial applications it's common to use sub-cent precision.
      See Also:
    • value

      public final long value
      The number of smallest units of this monetary value.
    • currencyCode

      public final String currencyCode
  • Method Details

    • valueOf

      public static Fiat valueOf(String currencyCode, long value)
    • smallestUnitExponent

      public int smallestUnitExponent()
      Description copied from interface: Monetary
      Returns the absolute value of exponent of the value of a "smallest unit" in scientific notation. For Bitcoin, a satoshi is worth 1E-8 so this would be 8.
      Specified by:
      smallestUnitExponent in interface Monetary
    • getValue

      public long getValue()
      Returns the number of "smallest units" of this monetary value.
      Specified by:
      getValue in interface Monetary
    • getCurrencyCode

      public String getCurrencyCode()
    • parseFiat

      public static Fiat parseFiat(String currencyCode, String str)

      Parses an amount expressed in the way humans are used to.

      This takes string in a format understood by BigDecimal(String), for example "0", "1", "0.10", "1.23E3", "1234.5E-5".

      Throws:
      IllegalArgumentException - if you try to specify more than 4 digits after the comma, or a value out of range.
    • parseFiatInexact

      public static Fiat parseFiatInexact(String currencyCode, String str)

      Parses an amount expressed in the way humans are used to. The amount is cut to 4 digits after the comma.

      This takes string in a format understood by BigDecimal(String), for example "0", "1", "0.10", "1.23E3", "1234.5E-5".

      Throws:
      IllegalArgumentException - if you try to specify a value out of range.
    • add

      public Fiat add(Fiat value)
    • subtract

      public Fiat subtract(Fiat value)
    • multiply

      public Fiat multiply(long factor)
    • divide

      public Fiat divide(long divisor)
    • divideAndRemainder

      public Fiat[] divideAndRemainder(long divisor)
    • divide

      public long divide(Fiat divisor)
    • isPositive

      public boolean isPositive()
      Returns true if and only if this instance represents a monetary value greater than zero, otherwise false.
    • isNegative

      public boolean isNegative()
      Returns true if and only if this instance represents a monetary value less than zero, otherwise false.
    • isZero

      public boolean isZero()
      Returns true if and only if this instance represents zero monetary value, otherwise false.
    • isGreaterThan

      public boolean isGreaterThan(Fiat other)
      Returns true if the monetary value represented by this instance is greater than that of the given other Fiat, otherwise false.
    • isLessThan

      public boolean isLessThan(Fiat other)
      Returns true if the monetary value represented by this instance is less than that of the given other Fiat, otherwise false.
    • signum

      public int signum()
      Specified by:
      signum in interface Monetary
    • negate

      public Fiat negate()
    • longValue

      public long longValue()
      Returns the number of "smallest units" of this monetary value. It's deprecated in favour of accessing value directly.
    • toFriendlyString

      public String toFriendlyString()
      Returns the value as a 0.12 type string. More digits after the decimal place will be used if necessary, but two will always be present.
    • toPlainString

      public String toPlainString()

      Returns the value as a plain string. The result is unformatted with no trailing zeroes. For instance, a value of 150000 "smallest units" gives an output string of "0.0015".

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo(Fiat other)
      Specified by:
      compareTo in interface Comparable<Fiat>