【问题标题】:Kotlin-How can i put comma every three number like this 1,000,000,000Kotlin-我怎样才能像这样 1,000,000,000 每三个数字加上逗号
【发布时间】:2020-09-13 17:00:28
【问题描述】:

我有一个问题,如果你能帮助我,我们将不胜感激。

这是我的问题的一个例子:

我有一些变量,例如 (10.000 , 20,000),用户可以选择它们并增加信用。

当用户点击并选择其中一个时,它会转到银行网关,付款后它会返回我的应用程序。

我使用文本视图来获取金额。这个没问题。

存储和显示给用户的数量是 10000 或 20000 或 100000,我想成为这样的 10,000 或 20,000 或 100,000

实际上每三个数字加一个逗号。

代码:

  private fun makepayment(amount: Long) {


        val progress = findViewById<RelativeLayout>(R.id.rl_progress)

        val purchase = ZarinPal.getPurchase(this)

        val payment: PaymentRequest = ZarinPal.getSandboxPaymentRequest()
        payment.merchantID = getString(R.string.MerchantId)
        payment.amount = amount
        payment.isZarinGateEnable(true)
        payment.description = getString(R.string.incresemoney)
        payment.setCallbackURL("returnfromzarinpal://mivebaranapp")



        purchase.startPayment(payment) {


                status, authority, paymentGatewayUri, intent ->

            if (status == 100) {

                progress.visibility = View.GONE
                startActivity(intent)

            } else {

                Toast.makeText(
                    this,
                    "خطایی در برقراری ارتباط با درگاه رخ داده ، لطفا دوباره امتحان کنید",
                    Toast.LENGTH_LONG
                ).show()


            }

        }

    }

private fun paymentVerification() {

    val textmoney: TextView = findViewById(R.id.money)
    val data: Uri? = intent.data

    val getpurchase = ZarinPal.getPurchase(this)


    getpurchase.verificationPayment(data) {

            isPaymentSuccess, refID, paymentRequest ->

        if (isPaymentSuccess) {


            textmoney.text = "${paymentRequest.amount} تومان  "


            Toast.makeText(this, "افزایش موجودی شما با موفقیت انجام شد ", Toast.LENGTH_LONG)
                .show()

        } else {

            Toast.makeText(
                this,
                "در عملیات پرداخت خطایی رخ داده ، لطفا دوباره سعی کنید",
                Toast.LENGTH_LONG
            ).show()


        }


    }

【问题讨论】:

    标签: android kotlin text android-inputtype


    【解决方案1】:

    试试这个:

    textView.text = "%,d".format(100000)
    

    输出:

    100,000
    

    【讨论】:

      【解决方案2】:

      您可以将金额作为 int 作为 agrument 传递给函数,并根据要求返回格式化字符串。作为一个单独的功能,即使您将来更改模式,它也会很有用,并且可以在多个地方使用。

      fun applyPattern(d: Int): String? {
      val numberFormat = NumberFormat.getInstance(Locale.US) as DecimalFormat
      numberFormat.applyPattern("#,###")
      return numberFormat.format(d)
      }
      

      【讨论】:

      • 虽然这个答案试图回答这个问题,但如果你描述一下这个答案如何帮助解决问题(在这种情况下似乎是 applyPattern 函数)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-13
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2018-11-29
      • 2016-06-11
      • 2021-11-21
      相关资源
      最近更新 更多