val height = 1.9d
val name = "James"
println(f"$name%s is $height%2.2f meters tall") // James is 1.90 meters tall
我在Better String formatting in Scala和Scala文檔中都看到過這個例子。斯卡拉字符串格式化
%2後代表什麼?我假設2f表示小數點後兩位。
val height = 1.9d
val name = "James"
println(f"$name%s is $height%2.2f meters tall") // James is 1.90 meters tall
我在Better String formatting in Scala和Scala文檔中都看到過這個例子。斯卡拉字符串格式化
%2後代表什麼?我假設2f表示小數點後兩位。
斯卡拉string interpolation formats幕後實際使用java's Formatter。
格式字符串具有以下格式:
%[argument_index$][flags][width][.precision]conversion
在你的情況下,格式字符串使用float
轉換(將f
末)
所以你的格式字符串要求一個浮動轉換的寬度爲2
,精度爲2
以同樣的方式%4.10f
將請求一個寬度爲的浮點轉換,精度爲10
。
1.9d
到格式字符串%4.10f
將導致字符串 1,9000000000
1.9d
到格式字符串%10.4f
將導致該串中在 1,9000
(它將被填充爲10與空白的寬度)第一個2表示您希望在輸出中打印的最少字符數,第二個2表示在t之後的數字位數他需要小數點。
假設你改爲「%5.2f」,並且「身高」爲1.2, 它會導致' 1.20'
(在開始處有空格)[不是引號;他們在這裏是爲了清晰]
文檔分別稱爲寬度和精度(%[寬度]。[精度])。
http://docs.scala-lang.org/overviews/core/string-interpolation.html (這指向文檔爲Java格式化)
https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
這裏閱讀更多的細節 - http://docs.scala-lang.org/overviews/core/string-interpolation html的 – tuxdna