Home > Software design >  Problem with Double, String and Integer conversion
Problem with Double, String and Integer conversion

Time:09-16

Why is the value 4.49504794 ? It should be usdRate:String * sas * ddx:EditText.

I want it to be 0.00000001 * input from edittext (from user) * usdRate:String (1 BTC in USD)

It should be 0.00000001/44950 * x (user_input = x) = (0,00002224694105)

I'm also wanting to limit usdRate:String to only 5 digits total, or somehow remove the last four symbols in the string.

            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 

Picture of output in application

Output

CodePudding user response:

This code gave me the output I was looking for. When a user input 3 as a value, will it return 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)
  • Related