【问题标题】:how to divide two integer into decimal in kotlin?如何在kotlin中将两个整数除以十进制?
【发布时间】:2022-01-05 13:52:50
【问题描述】:

我将两个整数(例如 3/6)相除,我试图在 kotlin 中得到 0.500000 的结果。我尝试了一些解决方案,但没有一个能像我一样解决我的问题。

val num = BigDecimal(3.div(6))

    println("%.6f".format(num))

   

但结果是 0.000000

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    36 都是Int,将一个Int 除以另一个得到Int:这就是为什么你会返回0。要得到一个非整数值,你需要得到结果的除法是一个非整数值。一种方法是在划分之前将Int 转换为其他内容,例如:

    val num = 3.toDouble() / 6
    

    num 现在将变为 Double,其值为 0.5,您可以根据需要将其格式化为字符串。

    【讨论】:

      【解决方案2】:

      你可能会有更好的运气:

      val num = 3.toBigDecimal().divide(6.toBigDecimal())
      println(num)
      // prints 0.5
      

      您必须将这两个数字都转换为 BigDecimal 才能使该方法起作用。这将显示确切的商,如果无法表示确切的商(即非终止小数),则抛出异常。

      您可以按如下方式设置缩放和舍入模式:

      val num = 3.toBigDecimal().divide(6.toBigDecimal(), 4, RoundingMode.HALF_UP)
      println(num)
      // prints 0.5000
      

      Link to reference article

      【讨论】:

        猜你喜欢
        • 2011-01-03
        • 2021-09-29
        • 2019-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多