0

我想读取一个浮点数,检查用户提供的类型,确定固定为两位数的位数。为了这 :

我已经实现了这三个功能。第一个从控制台读取输入:

  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 位数字。我怎样才能解决这个问题

4

0 回答 0