如何正确定位飞镖/长笛中的百分比值



我仍在寻找一种更好的方法来定位Dart/Flutter中的百分比值。到目前为止,我只是用以下代码将一个百分比值转换为一个合适的字符串:'${(_percentage * 100).toStringAsFixed(3)}%'

对于百分比值,例如65.7893,您将得到以下字符串:65.789%。这对英语来说很好,但对其他语言来说就不行了。

例如,对于德语,字符串应如下所示:65,789 %

解决方案

多亏了这些有用的提示,我现在创建了以下包装器函数。

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
_generatePercentString(percentValue) {
var systemLocale = Localizations.localeOf(context);
var numberFormatter = NumberFormat.decimalPercentPattern(
locale: systemLocale.languageCode,
decimalDigits: 3,
);
var percentString = numberFormatter.format(percentValue);
return percentString;
}

首先将intl包添加到您的pubspec.yaml 中

使用Localisation和NumberFormat类。

Locale myLocale = Localizations.localeOf(context); /* gets the locale based on system language*/
String languageCode = myLocale.languageCode;
print(NumberFormat.percentPattern(languageCode).format (60.23));

您可以在此处参考支持的区域设置:https://www.woolha.com/tutorials/dart-formatting-currency-with-numberformat#supported-区域

相关内容

  • 没有找到相关文章

最新更新