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

Scala中如何将数字格式化为字符串,实现C语言printf的%6.2f效果

Scala 浮点变量格式化(等效C语言%6.2f)并存入String的方案

你要实现的总宽度6位、保留2位小数的格式化效果,在Scala里有两种常用实现方式:

  • 方法1:使用Scala原生f插值(推荐)
    f插值是Scala提供的类型安全格式化方案,语法和C的printf占位符完全兼容,格式化错误会在编译阶段暴露,不会带到运行时。
    示例代码:
    val floatNum: Double = 12.3456
    // 直接通过f插值生成格式化后的字符串
    val formattedStr: String = f"$floatNum%6.2f"
    // 输出结果为 " 12.35"(总长度6位,前补1个空格,四舍五入保留2位小数,和C `printf("%6.2f", 12.3456)`效果完全一致)
    
  • 方法2:使用Java风格String.format
    如果你更熟悉C/Java的格式化写法,可以直接调用JDK的String.format方法,语法和C的printf完全一致:
    示例代码:
    val floatNum: Double = 1.234
    val formattedStr: String = String.format("%6.2f", floatNum: java.lang.Double)
    // 输出结果为 "  1.23"(总长度6位,前补2个空格)
    

两种方法输出的结果完全符合C语言printf("%6.2f")的规则:总占宽最少6字符,小数部分固定2位,不足宽度时默认在左侧补空格,小数部分超出长度时自动四舍五入。

内容的提问来源于stack exchange,提问作者Hans-Joachim Buschmann

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 21:24:03