Number QML Type

The Number object provides represents a number value. 更多...

import 语句: import QtQml

方法

详细描述

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

另请参阅 Locale .

方法文档编制

string fromLocaleString ( locale , number )

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

locale is not supplied the default locale will be used.

For example, using the German locale:

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
					

另请参阅 Locale .

string toLocaleCurrencyString ( locale , symbol )

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

另请参阅 Locale::currencySymbol ().

string toLocaleString ( locale , format , precision )

Converts the Number to a string suitable for the specified locale 以指定 format , with the specified precision .

Valid formats are:

  • 'f' Decimal floating point, e.g. 248.65
  • 'e' Scientific notation using e character, e.g. 2.4865e+2
  • 'E' Scientific notation using E character, e.g. 2.4865E+2
  • 'g' Use the shorter of e or f
  • 'G' Use the shorter of E or f

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

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

locale is not specified, the default locale will be used.

The following example shows a number formatted for the German locale:

import QtQuick 2.0
Text {
    text: "The value is: " +  Number(4742378.423).toLocaleString(Qt.locale("de_DE"))
}
					

You can customize individual fields of the locale to tightly control the output:

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
					

You can apply toLocaleString() directly to constants, provided the decimal is included in the constant, e.g.

123.0.toLocaleString(Qt.locale("de_DE")) // OK
123..toLocaleString(Qt.locale("de_DE"))  // OK
123.toLocaleString(Qt.locale("de_DE"))   // fails
					

另请参阅 Locale .