# pydicom.valuerep.ISfloat

class pydicom.valuerep.ISfloat(val: str | float | Decimal, validation_mode: int | None = None)

  Store value for an element with VR IS as `float`.

  Stores original integer string for exact rewriting of the string originally read or stored.

  Note: By the DICOM standard, IS can only be an `int`, however, it is not uncommon to see float IS values. This class is used if the config settings allow non-strict reading.

  Generally, use `IS` to create IS values, this is returned instead if the value cannot be represented as an `int`. See `IS` for details of the parameters and return values.

  __init__(val: str | float | Decimal, validation_mode: int | None = None) → None

  Methods

  `__init__`(val[, validation_mode]) |
  `as_integer_ratio`() | Return a pair of integers, whose ratio is exactly equal to the original float.
  `conjugate`() | Return self, the complex conjugate of any float.
  `from_number`(number, /) | Convert real number to a floating-point number.
  `fromhex`(string, /) | Create a floating-point number from a hexadecimal string.
  `hex`() | Return a hexadecimal representation of a floating-point number.
  `is_integer`() | Return True if the float is an integer.

  Attributes

  `imag` | the imaginary part of a complex number
  `real` | the real part of a complex number

  as_integer_ratio()

    Return a pair of integers, whose ratio is exactly equal to the original float.

    The ratio is in lowest terms and has a positive denominator. Raise OverflowError on infinities and a ValueError on NaNs.

        >>> (10.0).as_integer_ratio()
        (10, 1)
        >>> (0.0).as_integer_ratio()
        (0, 1)
        >>> (-.25).as_integer_ratio()
        (-1, 4)

  conjugate()

    Return self, the complex conjugate of any float.

  classmethod from_number(number, /)

    Convert real number to a floating-point number.

  classmethod fromhex(string, /)

    Create a floating-point number from a hexadecimal string.

        >>> float.fromhex('0x1.ffffp10')
        2047.984375
        >>> float.fromhex('-0x1p-1074')
        -5e-324

  hex()

    Return a hexadecimal representation of a floating-point number.

        >>> (-0.1).hex()
        '-0x1.999999999999ap-4'
        >>> 3.14159.hex()
        '0x1.921f9f01b866ep+1'

  imag

    the imaginary part of a complex number

  is_integer()

    Return True if the float is an integer.

  real

    the real part of a complex number