// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page qml-qtqml-number.html
    \title The Number JavaScript Object

    \inqmlmodule QtQml
    \brief The Number object provides represents a number value.

    The QML Number object extends the JS Number object with
    locale aware functions.

    \sa {QtQml::Locale}{Locale}

    \section1 string Number::toLocaleString(locale, format, precision)

    Converts the Number to a string suitable for the specified \a locale
    in the specified \a format, with the specified \a precision.

    Valid formats are:
    \list
    \li 'f'   Decimal floating point, e.g. 248.65
    \li 'e'   Scientific notation using e character, e.g. 2.4865e+2
    \li 'E'   Scientific notation using E character, e.g. 2.4865E+2
    \li 'g'   Use the shorter of e or f
    \li 'G'   Use the shorter of E or f
    \endlist

    If precision is not specified, the precision will be 2.

    If the format is not specified 'f' will be used.

    If \a locale is not specified, the default locale will be used.

    The following example shows a number formatted for the German locale:
    \qml
    import QtQuick 2.0

    Text {
        text: "The value is: " +  Number(4742378.423).toLocaleString(Qt.locale("de_DE"))
    }
    \endqml

    You can customize individual fields of the \a{locale} to tightly control
    the output:
    \qml
    let locale = Qt.locale("de_DE");
    let a = Number(1000).toLocaleString(locale)); // a == 1.000,00
    locale.numberOptions = Locale.OmitGroupSeparator;
    let b = Number(1000).toLocaleString(locale)); // b == 1000,00
    \endqml

    You can apply toLocaleString() directly to constants, provided the decimal
    is included in the constant, e.g.
    \qml
    123.0.toLocaleString(Qt.locale("de_DE")) // OK
    123..toLocaleString(Qt.locale("de_DE"))  // OK
    123.toLocaleString(Qt.locale("de_DE"))   // fails
    \endqml

    \sa {QtQml::Locale}{Locale}

    \section1 string Number::toLocaleCurrencyString(locale, symbol)

    Converts the Number to a currency using the currency and conventions of the specified
    \a locale.  If \a symbol is specified it will be used as the currency
    symbol.

    \sa Locale::currencySymbol()

    \section1 string Number::fromLocaleString(locale, number)

    Returns a Number by parsing \a number using the conventions of the supplied \a locale.

    If \a locale is not supplied the default locale will be used.

    For example, using the German locale:
    \qml
    var german = Qt.locale("de_DE");
    var d;
    d = Number.fromLocaleString(german, "1234,56")   // d == 1234.56
    d = Number.fromLocaleString(german, "1.234,56") // d == 1234.56
    d = Number.fromLocaleString(german, "1234.56")  // throws exception
    d = Number.fromLocaleString(german, "1.234")    // d == 1234.0
    \endqml

    \sa {QtQml::Locale}{Locale}
*/
