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)
}
我有一个问题,如果你能帮助我,我将不胜感激。
这是我的问题的一个例子:
我有一些变量,例如 (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)
}