Class Fiat

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

public final class Fiat extends Object implements Monetary, Comparable<Fiat>, Serializable
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.
See Also:
  • 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>