Flutter 如何确定当前区域设置';s符号表示小数点

Flutter 如何确定当前区域设置';s符号表示小数点,flutter,dart,locale,number-formatting,Flutter,Dart,Locale,Number Formatting,如何确定十进制分隔符的符号?应使用设备的当前区域设置。您需要使用库中提供的NumberFormat类的方法 根据指定的区域设置设置数字格式 e、 g.这是获取设备区域设置和设置数字格式的方法 import'package:intl/intl.dart'show NumberFormat; 导入“package:intl/number\u symbols\u data.dart”显示数字格式符号; 将“dart:ui”导入为ui; 字符串getCurrentLocale(){ 最终语言环境=ui.

如何确定十进制分隔符的符号?应使用设备的当前区域设置。

您需要使用库中提供的
NumberFormat
类的方法

根据指定的区域设置设置数字格式

e、 g.这是获取设备区域设置和设置数字格式的方法

import'package:intl/intl.dart'show NumberFormat;
导入“package:intl/number\u symbols\u data.dart”显示数字格式符号;
将“dart:ui”导入为ui;
字符串getCurrentLocale(){
最终语言环境=ui.window.locale;
final joined=“${locale.languageCode}{locale.countryCode}”;
if(numberFormatSymbols.keys.contains(已联接)){
回归加入;
}
返回locale.languageCode;
}
// ...
String dec=NumberFormat.decimalPattern(getCurrentLocale()).format(1234.567);
打印(12月);//为'en_US'地区打印1234.567
然而,为了回答您的初始问题,这里有一个函数,它返回十进制分隔符(如果有)或空字符串

String getDecimalSeparator(字符串区域设置){
返回数字格式符号[区域设置]?.DECIMAL_SEP;
}
// ...
打印(getDecimalSeparator(getCurrentLocale());//为“en_US”区域设置打印“.”。

让我知道这是否有用。

谢谢,这很有用!我希望能有更优雅的东西,因为所有这些符号,比如十进制和千位分隔符,都应该存储在intl库的某个地方,对吗?但无论如何,它是有效的@你说得对,我们已经使用的
numberFormatSymbols
实际上包含了特定语言的所有格式化常量。请参阅更新的
getDecimalSeparator
方法。@George回答得很好。您是否也知道以下问题的答案: