如何确定当前语言环境的小数点符号
How to determine the current locale's symbol for a decimal point
如何确定小数点分隔符的符号?应使用设备的当前区域设置。
您需要使用 NumberFormat
class 的方法,在 intl
库中可用。
NumberFormat.decimalPattern
根据指定的区域设置格式化数字。
例如这是获取设备区域设置和设置数字格式的方法。
import 'package:intl/intl.dart' show NumberFormat;
import 'package:intl/number_symbols_data.dart' show numberFormatSymbols;
import 'dart:ui' as ui;
String getCurrentLocale() {
final locale = ui.window.locale;
final joined = "${locale.languageCode}_${locale.countryCode}";
if (numberFormatSymbols.keys.contains(joined)) {
return joined;
}
return locale.languageCode;
}
// ...
String dec = NumberFormat.decimalPattern(getCurrentLocale()).format(1234.567);
print(dec); // prints 1,234.567 for `en_US` locale
但是,为了回答您最初的问题 - 这是一个 returns 小数点分隔符(如果找到的话)或空字符串的函数。
String getDecimalSeparator(String locale) {
return numberFormatSymbols[locale]?.DECIMAL_SEP ?? "";
}
// ...
print(getDecimalSeparator(getCurrentLocale())); // prints `.` for `en_US` locale.
如果有帮助请告诉我。
如何确定小数点分隔符的符号?应使用设备的当前区域设置。
您需要使用 NumberFormat
class 的方法,在 intl
库中可用。
NumberFormat.decimalPattern
根据指定的区域设置格式化数字。
例如这是获取设备区域设置和设置数字格式的方法。
import 'package:intl/intl.dart' show NumberFormat;
import 'package:intl/number_symbols_data.dart' show numberFormatSymbols;
import 'dart:ui' as ui;
String getCurrentLocale() {
final locale = ui.window.locale;
final joined = "${locale.languageCode}_${locale.countryCode}";
if (numberFormatSymbols.keys.contains(joined)) {
return joined;
}
return locale.languageCode;
}
// ...
String dec = NumberFormat.decimalPattern(getCurrentLocale()).format(1234.567);
print(dec); // prints 1,234.567 for `en_US` locale
但是,为了回答您最初的问题 - 这是一个 returns 小数点分隔符(如果找到的话)或空字符串的函数。
String getDecimalSeparator(String locale) {
return numberFormatSymbols[locale]?.DECIMAL_SEP ?? "";
}
// ...
print(getDecimalSeparator(getCurrentLocale())); // prints `.` for `en_US` locale.
如果有帮助请告诉我。