Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 以编程方式设置格式中的小数位数_Scala - Fatal编程技术网

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

我在Scala中有以下双精度:

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