【问题标题】:kotlin does wrong equations. it does not calculate correctlykotlin 做错了方程式。它没有正确计算
【发布时间】:2022-12-01 11:02:41
【问题描述】:
fun main(args: Array<String>) {
    val pie = 22/7
    println("Enter a number for triangle area")
    val input = readLine()?: ""
    val a = input.toInt() * input.toInt()  * pie
    println(a)
}

在这里,当我输入 6 时,它应该给我们 113.142857143 或 113.14

相反,它给出 108

output

使用javascript没问题

js output

【问题讨论】:

  • 看起来它正在使用整数运算。 (int)(22/7)33*6*6108
  • 尝试打印出馅饼。

标签: java kotlin math area triangle


【解决方案1】:

它将饼图视为整数。四舍五入后饼图变成3,所以6 * 3 * 3就是108。

有很多方法可以解决这个问题,但我建议使用 BigDecimal 来计算小数。

fun main(args: Array<String>) {
    val pie = BigDecimal.valueOf(Math.PI) // Either Math.PI or 22/7, one is 3.1415 another is 3.1428
    println("Enter a number for triangle area")
    val input = readLine()?: "0" // PLEASE DO INPUT VALIDATION HERE
    val inputDecimal = BigDecimal(input)
    val a = inputDecimal.multiply(inputDecimal).multiply(pie)
    println(a)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多