Scala 以编程方式设置格式中的小数位数
我在Scala中有以下双精度:Scala 以编程方式设置格式中的小数位数,scala,Scala,我在Scala中有以下双精度: val value: Double = 12.34 并获取格式化的值,如下所示: val formatted = f"$value%1.5f" 但我需要以编程方式设置小数位数(大于5)。我试过这个,但不起作用: val dec = 8 val formatted = f"$value%1.decf" 有什么想法吗?您可以使用scalaBigDecimal及其setScaledef,然后在必要时转换为Double: BigDecimal(12.35564126
val value: Double = 12.34
并获取格式化的值,如下所示:
val formatted = f"$value%1.5f"
但我需要以编程方式设置小数位数(大于5)。我试过这个,但不起作用:
val dec = 8
val formatted = f"$value%1.decf"
有什么想法吗?您可以使用scala
BigDecimal
及其setScale
def,然后在必要时转换为Double
:
BigDecimal(12.35564126).setScale(5, BigDecimal.RoundingMode.HALF_UP).toDouble
// res0: Double = 12.35564
您可以使用scala
BigDecimal
及其setScale
def,然后在必要时转换为Double
:
BigDecimal(12.35564126).setScale(5, BigDecimal.RoundingMode.HALF_UP).toDouble
// res0: Double = 12.35564
怎么样
fmt="%."+n+"f"
fmt.format(12.34)
太明显了?怎么样
fmt="%."+n+"f"
fmt.format(12.34)
val value: Double = 12.34
val dec = 8
val formatted = s"%1.${dec}f".format(value) // 12.34000000
太明显了
val value: Double = 12.34
val dec = 8
val formatted = s"%1.${dec}f".format(value) // 12.34000000