scala - 限制scala中的小数位
问题描述
我是 Scala 的新手,我正在尝试编写一个函数,该函数以双精度和整数作为输入,并以小数点后的精度返回双精度值。
def decimal_value(d: Double, p: Integer) :
Double = {
if (d >= 0) {
BigDecimal.(d).setScale(p, BigDecimal.RoundingMode.HALF_UP).toDouble
}
else
d
}
我的输入是 1.140060000,我希望输出为 1.14006,但它返回 1.140060000。它没有考虑 5 个精度点之后的 0。
解决方案
1.140060000
并且1.14006
是相同的数字,所以看起来这个问题是关于打印出来时值的显示方式。调用toString
它Double
会得到“1.14006”,这就是你想要的,所以不清楚为什么你会得到“1.140060000”
您可以使用字符串格式化操作来确保获得所需的特定输出:
val str = f"$d7.1f"
推荐阅读
- node.js - GraphQL 解析器返回错误“无法读取 forEach of Undefined”
- python - Pyinstaller - 如何隐藏导入moviepy?
- javascript - 在 Sphere 上应用图片的问题
- javascript - 递归查找 JSON 值并返回对象
- ios - 创建或重复使用 Apple 分发证书?
- javascript - 防止双击 addtocart 按钮
- bash - 如何复制文件和指向该文件的符号链接?
- python - 如何使重复索引成为 MultiIndex 列
- python - 如何修复此代码的“TypeError:'module' object is not callable”,因为它在几周前工作?
- vba - 当电子邮件到达时,从主题行中删除 [EXTERNAL] 并从电子邮件正文中删除警告框