人类可读数字

Jar*_*key 6 human-readable rust

是否有一种简单的方法和动态的方式来将字符串中的数字格式化为人类可读的?例如10000000000转入10,000,000,000.我已经看到了这个问题,但答案已经过时并且已经过时(示例中的答案).

Qui*_*ill 5

尝试这个伪算法:

  1. 将字符串长度除以 3
  2. 将其向下舍入,我们将其称为x
  3. x向后循环字符串几次:

    1. 获取位于 times 3 位置的字符串x,或索引 [(x times 3) - 1],我们将其称为y
    2. y用。。。来代替"," + y


Jar*_*key 2

对于我的语言环境来说,这似乎有效!可能不是最惯用的 Rust,但它很实用。

fn readable(mut o_s: String) -> String {
    let mut s = String::new();
    let mut negative = false;
    let values: Vec<char> = o_s.chars().collect();
    if values[0] == '-' {
        o_s.remove(0);
        negative = true;
    }
    for (i ,char) in o_s.chars().rev().enumerate() {
        if i % 3 == 0 && i != 0 {
            s.insert(0, ',');
        }
        s.insert(0, char);
    }
    if negative {
        s.insert(0, '-');
    }
    return s
}

fn main() {
    let value: i64 = -100000000000;
    let new_value = readable(value.to_string());
    println!("{}", new_value);
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

447 次

最近记录:

9 年,8 月 前