我在 Dart 中格式化十进制值时遇到问题。
我有以下代码片段:
import 'package:decimal/Decimal.dart';
Decimal formatDecimal(Decimal value) {
String formattedString = value.toStringAsFixed(2);
return Decimal.parse(formattedString);
}
void main() {
Decimal decimalValue = Decimal.parse('8');
Decimal formattedValue = formatDecimal(decimalValue);
print(formattedValue); // Output: 8
}
打印语句的预期输出是十进制格式的 8.00,但实际输出是 8。看来格式没有正确应用。
有人可以建议如何在 Dart 中正确格式化十进制值 8 到 8.00 吗?
谢谢你。
根据文档,您可以使用
intl
包将格式化程序应用于您的值:
import 'package:decimal/decimal.dart';
import 'package:decimal/intl.dart';
main() {
var value = Decimal.parse('1234.56');
var formatter = NumberFormat.decimalPattern('en-US');
print(formatter.format(DecimalIntl(value)));
}
立即尝试
import 'package:decimal/decimal.dart';
Decimal formatDecimal(Decimal value) {
String formattedString = value.toStringAsFixed(2);
// Append trailing zeros if necessary
if (!formattedString.contains('.')) {
formattedString += '.00';
} else if (formattedString.endsWith('.')) {
formattedString += '00';
} else if (formattedString.endsWith('.0')) {
formattedString += '0';
}
return Decimal.parse(formattedString);
}
void main() {
Decimal decimalValue = Decimal.parse('8');
Decimal formattedValue = formatDecimal(decimalValue);
print(formattedValue); // Output: 8.00
}