Scala字符串格式化

3
val height = 1.9d
val name = "James"
println(f"$name%s is $height%2.2f meters tall")  // James is 1.90 meters tall

我在Scala中更好的字符串格式化和Scala文档中都看到过这个例子。

在%之后的2代表什么?我认为2f表示保留两位小数。


点击此处了解更多详情 - http://docs.scala-lang.org/overviews/core/string-interpolation.html - tuxdna
2个回答

3
Scala的字符串插值格式实际上在幕后使用了Java的Formatter
格式化字符串的格式如下:
%[argument_index$][flags][width][.precision]conversion

在您的情况下,格式字符串使用了float转换(末尾的f

因此,您的格式字符串要求使用宽度为2和精度为2的浮点转换

同样地,%4.10f将请求使用宽度为4和精度为10的浮点转换。

  • 1.9d传递给格式字符串%4.10f将导致字符串1,9000000000
  • 1.9d传递给格式字符串%10.4f将导致字符串 1,9000(它会用空格填充到宽度为10)

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接