我在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"
有什么想法吗?
答案 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)
太明显了?