(在Scala中)我一直在尝试创建一个将 Double 转换为一定数量小数点的函数。如果我希望它将 String 返回到2位小数,我会这样做:
var result = !ListB.Except(ListA).Any();
但如果我想通过参数传递小数位数,我的第一次尝试可能是:
def roundBy2(num: Double): String = f"$num%1.2f"
但是这引发了:
'%1'中缺少转换运算符;使用%%表示文字%,%n表示 换行def roundBy(num:Double)(dp:Int):String = F" $ NUM%1 $ {DP} F"
我知道在使用插补器时,在引用引号内的值时我不必使用花括号,但当然只会离开 def roundBy(num: Double)(dp: Int): String = f"$num%1.${dp}f"
而我会错误地试图使用尚未声明的值,即f"$num%1.$dpf"
我确信这可以通过这种方式实现,但我缺乏语法,所以我希望有一个简单的解决方法。感谢
答案 0 :(得分:1)
您可以改为使用.format(num)
:
def roundBy(num: Double)(dp: Int): String = s"%1.${dp}f".format(num)