【问题标题】:Problem with Double, String and Integer conversionDouble、String 和 Integer 转换的问题
【发布时间】:2021-11-09 03:06:30
【问题描述】:

为什么值为 4.49504794 ?应该是usdRate:String * sas * ddx:EditText

我希望它是来自edittext(来自用户)的0.00000001 * input * usdRate:String(1 BTC in USD)

应该是 0.00000001/44950 * x (user_input = x) = (0,00002224694105)

我还想将usdRate:String 总共限制为 5 位数字,或者以某种方式删除字符串中的最后四个符号。

            var usdRate:String = (JSONObject(json).getJSONObject("bpi").getJSONObject("USD")["rate"]  as String)
            val text = usdRate.replace(",", "")
            val text2 = text.replace(".", "")
            val satosh: Int = text2.toInt()
            val sas: Double = 0.00000001
            val sas2: Double = sas.toDouble() * satosh.toDouble()
            val ddx:EditText = findViewById(R.id.editTextNumber2)
            val sasEnty: Double = (ddx.text.toString().toDouble() * sas2)

                //1 satoshi value in USD
            usdView.text = sasEnty.toString()
            //Problem end 

应用程序中的输出图片

Output

【问题讨论】:

  • 您需要一个标签来指定代码的语言。(您只能有 5 个标签,但您可能会删除“文本”。)
  • 是的,好的。现在完成了;)它是 Kotlin
  • 我的意思是你需要一个标签(在问题的底部)。我已为您更新并清理了格式。

标签: string kotlin android-edittext integer double


【解决方案1】:

这段代码给了我想要的输出。当用户输入3作为值时,是否会返回0.0013994405520000002

//ex 45,000.01234
var usdRate: String = (JSONObject(json).getJSONObject("bpi").getJSONObject("USD")["rate"]  as String).toString()
val usdRateN1: String = usdRate.replace(",", "")
val sastoshi: Double = 0.00000001
var antalSatoshi = sastoshi * ddx.text.toString().toDouble()
var FinalUsdCount = (usdRateN1.toDouble() * antalSatoshi )
Math.round(FinalUsdCount)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2019-05-05
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多