#android #textview #android-edittext #bitcoin #divide
Вопрос:
//————————————————————————————
Привет, это мой самый первый «вопрос». Я счастлив быть частью сообщества. Я хочу получить стоимость монеты Сатоши (это 100.000.000 от 1 BTC). Я могу найти стоимость 1 BTC в долларах США. В принципе, могу ли я просто разделить стоимость 1BTC в долларах США на 100.000.000? Но как я могу поместить значение в текстовое представление или редактируемый текст?
//————————————————————————————
Ошибка Отладки.
E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
Process: com.thordalenterprise.satoshiconverter, PID: 19493
java.lang.NumberFormatException: For input string: "45,586"
at java.lang.Integer.parseInt(Integer.java:615)
at java.lang.Integer.parseInt(Integer.java:650)
at com.thordalenterprise.satoshiconverter.MainActivity$loadPrice$1.onResponse(MainActivity.kt:65)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:929)W/atoshiconverte: Accessing hidden method Landroid/media/AudioManager;->getOutputLatency(I)I (greylist, reflection, allowed)V/AudioManager: isWiredHeadsetOn...I/Process: Sending signal. PID: 19493 SIG: 9
//————————————————————————————
// Functions
private fun loadPrice() {
val request: Request = Request.Builder().url(BPI_ENDPOINT).build()
val EurView:TextView = findViewById<TextView>(R.id.EURreturn)
val usdView:TextView = findViewById<TextView>(R.id.USDRETURN)
val btcView:TextView = findViewById<TextView>(R.id.BitcoinViewReturner)
val SatoshiC:EditText = findViewById(R.id.SatoshiCount)
val ddx:EditText = findViewById(R.id.editTextNumber)
okHttpClient.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call?, e: IOException?) { }
override fun onResponse(call: Call?, response: Response?) {
val json = response?.body()?.string()
val read = Scanner(System.`in`)
// we get the json response returned by the Coin Desk API
// make this call on a browser for example to watch the properties
// here we get USD and EUR rates properties
// we split the value got just to keep the integer part of the values
val btcRate:String = "1"
val SatoshiCoin:Int = 100000000
val usdRate = (JSONObject(json).getJSONObject("bpi").getJSONObject("USD")["rate"] as String).split(".")[0]
val satosh = usdRate.toInt() / 100000000
val num = 2.toBigDecimal().divide(2.toBigDecimal()).toInt()
//Problem start
val satoshiValue = usdRate.toInt() / SatoshiC.text.toString().toInt() * satosh
btcView.text = satoshiValue.toChar().toString()
//Problem end
Ответ №1:
исключение java.lang.NumberFormatException: Для входной строки: «45 586»
означает , что ваша строка содержит , вы должны удалить, правильно отформатировать строку.
пример 45,586 вместо этого вы должны передать 45586 как строку
Комментарии:
1. О, хорошо, я понимаю. В этом есть смысл. Спасибо.