You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何格式化浮点数以保留最多3位小数并省略末尾的零?

浮点数格式化需求与实现方案

我需要格式化浮点数,要求最多保留3位小数,小数部分末尾的零需自动省略。示例如下:

input : expected output
1.1234 : 1.123
1.120 : 1.12
1.100 : 1.1
1.0 : 1

只需要基于标准C风格字符串格式化(比如%.3f)实现即可,编程语言不限。我自己给出的解决方案如下:

方案一

function formatShortFloat(value as Float) as String {
    var str = value.format("%.3f");
    var chars = str.toCharArray();
    var end;
    for (end = str.length() - 1; chars[end] == '0' && end > 0; --end) {
    }
    if (chars[end] == '.') {
        --end;
    }
    return str.substring(0, end + 1) as String;
}

方案二

(注:这是Monkey C代码,该语言没有更简便的字符串字符访问方式,因此我希望了解不限语言的实现,甚至伪代码均可)

function formatShortFloat(value as Float) as String {
    var str = value.format("%.3f");
    var end = str.length();
    var lastChar;
    do {
        lastChar = str.substring(end - 1, end);
        --end;
    } while ("0".equals(lastChar));
    if (".".equals(lastChar)) {
        --end;
    }
    return str.substring(0, end + 1) as String;
}

内容的提问来源于stack exchange,提问作者Gavriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:33:17