The QDoubleValidator class provides range checking of floating-point numbers. More...

` #include <QDoubleValidator>`

**Inherits: **QValidator.

enum | Notation { StandardNotation, ScientificNotation } |

- 1 property inherited from QObject

QDoubleValidator ( QObject * parent = 0 ) | |

QDoubleValidator ( double bottom, double top, int decimals, QObject * parent = 0 ) | |

~QDoubleValidator () | |

double | bottom () const |

int | decimals () const |

Notation | notation () const |

void | setBottom ( double ) |

void | setDecimals ( int ) |

void | setNotation ( Notation ) |

virtual void | setRange ( double minimum, double maximum, int decimals = 0 ) |

void | setTop ( double ) |

double | top () const |

virtual QValidator::State | validate ( QString & input, int & pos ) const |

- 4 public functions inherited from QValidator
- 29 public functions inherited from QObject

- 1 public slot inherited from QObject
- 1 signal inherited from QObject
- 7 static public members inherited from QObject
- 8 protected functions inherited from QObject

The QDoubleValidator class provides range checking of floating-point numbers.

QDoubleValidator provides an upper bound, a lower bound, and a limit on the number of digits after the decimal point. It does not provide a fixup() function.

You can set the acceptable range in one call with setRange(), or with setBottom() and setTop(). Set the number of decimal places with setDecimals(). The validate() function returns the validation state.

QDoubleValidator uses its locale() to interpret the number. For example, in the German locale, "1,234" will be accepted as the fractional number 1.234. In Arabic locales, QDoubleValidator will accept Arabic digits.

In addition, QDoubleValidator is always guaranteed to accept a number formatted according to the "C" locale. QDoubleValidator will not accept numbers with thousand-separators.

**See also **QIntValidator, QRegExpValidator, and Line Edits Example.

This enum defines the allowed notations for entering a double.

Constant | Value | Description |
---|---|---|

QDoubleValidator::StandardNotation | 0 | The string is written as a standard number (i.e. 0.015). |

QDoubleValidator::ScientificNotation | 1 | The string is written in scientific form. It may have an exponent part(i.e. 1.5E-2). |

This enum was introduced or modified in Qt 4.3.

This property holds the validator's minimum acceptable value.

By default, this property contains a value of -infinity.

**Access functions:**

double | bottom () const |

void | setBottom ( double ) |

**See also **setRange().

This property holds the validator's maximum number of digits after the decimal point.

By default, this property contains a value of 1000.

**Access functions:**

int | decimals () const |

void | setDecimals ( int ) |

**See also **setRange().

This property holds the notation of how a string can describe a number.

By default, this property is set to ScientificNotation.

This property was introduced in Qt 4.3.

**Access functions:**

Notation | notation () const |

void | setNotation ( Notation ) |

**See also **Notation.

This property holds the validator's maximum acceptable value.

By default, this property contains a value of infinity.

**Access functions:**

double | top () const |

void | setTop ( double ) |

**See also **setRange().

Constructs a validator object with a *parent* object that accepts any double.

Constructs a validator object with a *parent* object. This validator will accept doubles from *bottom* to *top* inclusive, with up to *decimals* digits after the decimal point.

Destroys the validator.

Sets the validator to accept doubles from *minimum* to *maximum* inclusive, with at most *decimals* digits after the decimal point.

Reimplemented from QValidator::validate().

Returns Acceptable if the string *input* contains a double that is within the valid range and is in the correct format.

Returns Intermediate if *input* contains a double that is outside the range or is in the wrong format; e.g. with too many digits after the decimal point or is empty.

Returns Invalid if the *input* is not a double.

Note: If the valid range consists of just positive doubles (e.g. 0.0 to 100.0) and *input* is a negative double then Invalid is returned. If notation() is set to StandardNotation, and the input contains more digits before the decimal point than a double in the valid range may have, Invalid is returned. If notation() is ScientificNotation, and the input is not in the valid range, Intermediate is returned. The value may yet become valid by changing the exponent.

By default, the *pos* parameter is not used by this validator.