我想读取一个浮点数,检查用户提供的类型,确定固定为两位数的位数。为了这 :
我已经实现了这三个功能。第一个从控制台读取输入:
def readFloat: IO[Float] = IO {
scala.io.StdIn.readFloat()
}
检查输入是否为 Float 的另一个函数:
def findDataType(x: Any): IO[Unit] = x match {
case x: Int =>
IO(println("Integer identified, provide a Float with 2 digits"))
case x: Float => IO(println("Float identified, Thanks"))
case _ =>
IO(println("DataType not identified, , provide a Float with 2 digits"))
}
第三个检查位数:
def valueWith2digits(v: Float): Boolean = {
val comp = BigDecimal(v)
.setScale(2, BigDecimal.RoundingMode.HALF_DOWN)
.toFloat
if (v.toFloat == comp) true else false
}
该函数需要一个浮点数,但我有 IO [浮点数]。我不知道如何解开提供的值以检查是否给出了 2 位数字。我怎样才能解决这个问题