Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 科特林计算器可以';最后不要删除double.0_Kotlin - Fatal编程技术网

Kotlin 科特林计算器可以';最后不要删除double.0

Kotlin 科特林计算器可以';最后不要删除double.0,kotlin,Kotlin,在double中获取输出不是一个选项,因为它最终会给出整数.0。我尝试添加.roundToInt(),但它不起作用,编译时会出现以下错误:类型不匹配:推断类型为Int,但预期为Double如果我理解正确,您希望去掉双精度值(尾随零)末尾的十进制零。如果是这样,这里有一个干净的解决方案。 使用双倍值进行所有计算,如果要打印结果,请按以下方式进行: fun equalsClick(view: View) { val sec0perandText: String = resultTex

在double中获取输出不是一个选项,因为它最终会给出整数.0。我尝试添加
.roundToInt()
,但它不起作用,编译时会出现以下错误:
类型不匹配:推断类型为Int,但预期为Double

如果我理解正确,您希望去掉双精度值(尾随零)末尾的十进制零。如果是这样,这里有一个干净的解决方案。 使用双倍值进行所有计算,如果要打印结果,请按以下方式进行:

fun equalsClick(view: View) {
        val sec0perandText: String = resultTextView.text.toString()
        var sec0perand: Double = 0.0.roundToInt()

        if (!TextUtils.isEmpty(sec0perandText)) {
            sec0perand = sec0perandText.toDouble()

        }

        when (operation) {
            "+" -> resultTextView.text = (operand + sec0perand).toString()
            "-" -> resultTextView.text = (operand - sec0perand).toString()
            "*" -> resultTextView.text = (operand * sec0perand).toString()
            "/" -> resultTextView.text = (operand / sec0perand).toString()
        }

    }

如果十进制数字是零或其他十进制值(它不会对数字进行四舍五入,只是对其进行格式化)

如果我理解正确,您希望去掉双精度值末尾的十进制零(尾随零)。如果是这样,这里有一个干净的解决方案。 使用双倍值进行所有计算,如果要打印结果,请按以下方式进行:

fun equalsClick(view: View) {
        val sec0perandText: String = resultTextView.text.toString()
        var sec0perand: Double = 0.0.roundToInt()

        if (!TextUtils.isEmpty(sec0perandText)) {
            sec0perand = sec0perandText.toDouble()

        }

        when (operation) {
            "+" -> resultTextView.text = (operand + sec0perand).toString()
            "-" -> resultTextView.text = (operand - sec0perand).toString()
            "*" -> resultTextView.text = (operand * sec0perand).toString()
            "/" -> resultTextView.text = (operand / sec0perand).toString()
        }

    }
如果十进制数字是零或其他十进制值,这将去除它们(它不会对数字进行四舍五入,只是格式化它)

我尝试添加.roundToInt(),但它不起作用,编译时会出现以下错误:类型不匹配:推断的类型为Int,但应为Double

你只是在错误的地方做,使用

resultTextView.text = String.format("%.0f", operand + sec0perand)
等等

我尝试添加.roundToInt(),但它不起作用,编译时会出现以下错误:类型不匹配:推断的类型为Int,但应为Double

你只是在错误的地方做,使用

resultTextView.text = String.format("%.0f", operand + sec0perand)

依此类推。

使用
NumberFormat
格式化数字
toString()
通常用于调试目的。在这种情况下使用double可能会出现一些尴尬的情况。  我强烈怀疑用大小数会更好;有了它们,你就可以得到你想要的准确度,而不必做狡猾的取整来隐藏不准确的地方。  您可以根据需要设置它们的小数位数。使用
NumberFormat
设置数字格式
toString()
通常用于调试目的。在这种情况下使用double可能会出现一些尴尬的情况。  我强烈怀疑用大小数会更好;有了它们,你就可以得到你想要的准确度,而不必做狡猾的取整来隐藏不准确的地方。  您可以设置它们的小数位数,以根据需要提供尽可能多或尽可能少的小数位数。