如何确定小数点的当前语言环境符号

G. *_*arc 3 locale number-formatting dart flutter

如何确定小数点分隔符的符号?应使用设备的当前区域设置。

Geo*_*rge 7

您需要使用库中NumberFormat可用的类方法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
Run Code Online (Sandbox Code Playgroud)

但是,要回答您最初的问题 - 这是一个返回小数点分隔符(如果有)或空字符串的函数。

String getDecimalSeparator(String locale) {
  return numberFormatSymbols[locale]?.DECIMAL_SEP ?? "";
}

// ...

print(getDecimalSeparator(getCurrentLocale())); // prints `.` for `en_US` locale.
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,请告诉我。