Eine andere Problemumgehung für dieses Problem ist die Verwendung der saparator
crate, die eine .separated_string()
-Methode für Float-, Ganzzahl- und Größentypen implementiert. Hier ein Beispiel:
extern crate separator;
use separator::Separatable;
fn main() {
let x1: u16 = 12345;
let x2: u64 = 4242424242;
let x3: u64 = 232323232323;
println!("Unsigned ints:\n{:>20}\n{:>20}\n{:>20}\n", x1.separated_string(), x2.separated_string(), x3.separated_string());
let x1: i16 = -12345;
let x2: i64 = -4242424242;
let x3: i64 = -232323232323;
println!("Signed ints:\n{:>20}\n{:>20}\n{:>20}\n", x1.separated_string(), x2.separated_string(), x3.separated_string());
let x1: f32 = -424242.4242;
let x2: f64 = 23232323.2323;
println!("Floats:\n{:>20}\n{:>20}\n", x1.separated_string(), x2.separated_string());
let x1: usize = 424242;
// let x2: isize = -2323232323; // Even though the docs say so, the traits seem not to be implemented for isize
println!("Size types:\n{:>20}\n", x1.separated_string());
}
Welche Sie die folgende Ausgabe gibt:
Unsigned ints:
12,345
4,242,424,242
232,323,232,323
Signed ints:
-12,345
-4,242,424,242
-232,323,232,323
Floats:
-424,242.44
23,232,323.2323
Size types:
424,242
Beachten Sie, dass Schwimmer wie diese Ausrichtung nicht einfach ist, da separated_string()
einen String zurückgibt. Dies ist jedoch eine relativ schnelle Möglichkeit, getrennte Zahlen zu erhalten.
Ich glaube nicht, dass das möglich ist, ohne jetzt benutzerdefinierten Code zu schreiben. – Dogbert
Warum '10.000.000' und nicht' 1,00,00,000'? Wie würden Sie angeben, wie Sie Ziffern gruppieren? –
@MatthieuM. Tausendertrennzeichen für Lesbarkeit. Die meisten, wenn nicht alle Sprachen haben diese Funktionalität, also habe ich mich gefragt, ob Rust das auch tut. – Caballero