Gibt es eine Möglichkeit mit NumberFormat
zu display:Dart - Number
- '15', wenn Doppel Wert 15.00
- '15 .50' , wenn Doppel Wert 15,50
Vielen Dank für Ihre Hilfe .
Gibt es eine Möglichkeit mit NumberFormat
zu display:Dart - Number
Vielen Dank für Ihre Hilfe .
Eigentlich, denke ich, ist es einfacher, mit truncateToDouble()
und toStringAsFixed()
und nicht NumberFormat
überhaupt verwenden zu gehen:
n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 2);
So zum Beispiel:
main() {
double n1 = 15.00;
double n2 = 15.50;
print(format(n1));
print(format(n2));
}
String format(double n) {
return n.toStringAsFixed(n.truncateToDouble() == n ? 0 : 2);
}
Zur Konsole drucken:
15
15.50
Edit: Die Lösung von Martin geschrieben seens eine Eins, besser sein
Ich glaube nicht, diese direkt durchgeführt werden kann. Sie werden wahrscheinlich brauchen etwas wie folgt aus:
final f = new NumberFormat("###.00");
String format(num n) {
final s = f.format(n);
return s.endsWith('00') ? s.substring(0, s.length - 3) : s;
}
Nicht sehr leicht. Interpretieren, was Sie wollen, wie das Drucken null Dezimalstellen, wenn es ein Integer-Wert ist und genau zwei, wenn es ein Schwimmer ist, könnten Sie
var forInts = new NumberFormat();
var forFractions = new NumberFormat();
forFractions.minimumFractionDigits = 2;
forFractions.maximumFractionDigits = 2;
format(num n) =>
n == n.truncate() ? forInts.format(n) : forFractions.format(n);
print(format(15.50));
print(format(15.0));
tun, aber es gibt wenig Vorteil bei der Verwendung Number für diesen, wenn Sie das Ergebnis wollen anders drucken für verschiedene Locales.
Ich muss darüber lachen, für eine Sprache, die behauptet, knapp zu sein – fostandy