以编程方式设置格式化小数位数

时间:2017-09-20 14:45:06

标签: scala

我在Scala中有以下Double:

class Question(models.Model):
    user = models.ForeignKey(User)
    followers = models.ManyToManyField(User, related_name='user_follow')

并获取格式化的值,如下所示:

val value: Double = 12.34

但我需要以编程方式设置小数位数(大于5)。我试过这个,但它不起作用:

val formatted = f"$value%1.5f"

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

val value: Double = 12.34
val dec = 8
val formatted = s"%1.${dec}f".format(value) // 12.34000000

答案 1 :(得分:1)

您可以将scala BigDecimal与其setScale def一起使用,然后在必要时转换为Double

BigDecimal(12.35564126).setScale(5, BigDecimal.RoundingMode.HALF_UP).toDouble
// res0: Double = 12.35564

答案 2 :(得分:1)

怎么样

fmt="%."+n+"f"
fmt.format(12.34)

太明显了?