通过在Scala中将小数位数作为参数传递来格式化数字
(在Scala中)我一直在尝试创建一个函数,将Double转换为一定数量的小数点。如果我希望它将字符串返回到小数点后2位,我会这样做:通过在Scala中将小数位数作为参数传递来格式化数字,scala,formatting,decimal,rounding,Scala,Formatting,Decimal,Rounding,(在Scala中)我一直在尝试创建一个函数,将Double转换为一定数量的小数点。如果我希望它将字符串返回到小数点后2位,我会这样做: def roundBy2(num: Double): String = f"$num%1.2f" 但如果我想通过参数传递小数位数,我的第一次尝试可能是: def roundBy(num: Double)(dp: Int): String = f"$num%1.${dp}f" 但这让人联想到: “%1”中缺少转换运算符;使用%%表示文字%,%n
def roundBy2(num: Double): String = f"$num%1.2f"
但如果我想通过参数传递小数位数,我的第一次尝试可能是:
def roundBy(num: Double)(dp: Int): String = f"$num%1.${dp}f"
但这让人联想到:
“%1”中缺少转换运算符;使用%%表示文字%,%n表示文字
换行定义舍入(num:Double)(dp:Int):字符串=
f“$num%1.${dp}f”
我知道,当使用插值器时,在引用引用引号内的值时,我不必使用大括号,但这会留下f“$num%1.$dpf”
,我会被误认为试图使用未声明的值,即$dpf
我确信这是可以通过这种方式实现的,但我缺乏语法,所以我希望有一个简单的解决方法。谢谢您只需使用
.format(num)
即可:
def roundBy(num:Double)(dp:Int):String=s“%1.${dp}f”。格式(num)
谢谢-这样就可以了。你知道的时候就这么简单!