Kotlin-我怎么能像这样每三个数字加上逗号 1,000,000,000

Kotlin-How can i put comma every three number like this 1,000,000,000

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

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

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

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

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

存储并显示给用户的数量是 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()


        }


    }

试试这个:

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

输出:

100,000

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

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