我面临一个问题,我需要进行一些计算,例如 5000,00 将其乘以( 1,025^3 <)/strong>)。
所以在这种情况下5000,00 * (1,025^3) = 5385,45
所以我的问题是,如何格式化数字5385,45,就像 5.385,45 使用小数格式一样?
我自己尝试了,我做了这件代码,该代码在应用程序中输出5385,45,但 5.385,45
var interestValue = (5000,00*(Math.pow(1.025,yearValue)))
val number = java.lang.Double.valueOf(interestValue)
val dec = DecimalFormat("#,00")
val credits = dec.format(number)
vValueInterest.text = credits
这是您需要的格式:
val dec = DecimalFormat("#,###.##")
将打印:
5.384,45
如果您在小数点之后始终需要完全2位数字:
val dec = DecimalFormat("#,###.00")
val num = 1.34567
val df = DecimalFormat("#.##")
df.roundingMode = RoundingMode.CEILING
println(df.format(num))
运行程序时,输出将为:1.34
检查:https://www.programiz.com/kotlin-programming/examples/Round-number-decimal
"大多数Kotlin-Quequ"我发现这样做这种格式的方式是:
"%,.2f".format(Locale.GERMAN, 1234.5678) // => "1.234,57"
"%,.2f".format(Locale.ENGLISH, 1234.5678) // => "1,234.57"
"%,.2f".format(1234.5678) // => "1,234.57" for me, in en_AU
请注意,即使这是kotlin在String
上的扩展方法,它仍然仅在JVM上工作。
对于那些寻求多平台实现的人(作为我),MP_STOOLS是一个选项。
使用:
%.numberf
fun main(args: Array<String>) {
var A: Double
A = readLine()!!.toDouble()
var bla = A*A
var calculator = 3.14159 * bla
println("A=%.4f".format(calculator))
}
尝试val dec = DecimalFormat("#.###,00")
。有关DemalFormat的示例,请检查此链接。
我需要做类似的事情,但对于Kotlin Multiplatform(KMM)。我很难找到一个多平台解决方案,所以我想我会在这里提出的内容:
// Common
expect fun Double.formatDecimal(maxFractionDigits: Int = 2): String
// Android
import java.text.DecimalFormat
actual fun Double.formatDecimal(maxFractionDigits: Int): String =
DecimalFormat().apply {
isGroupingUsed = false
minimumFractionDigits = 0
maximumFractionDigits = maxFractionDigits
isDecimalSeparatorAlwaysShown = false
}.format(this)
// iOS
import kotlinx.cinterop.convert
import platform.Foundation.NSNumber
import platform.Foundation.NSNumberFormatter
import platform.Foundation.NSNumberFormatterDecimalStyle
actual fun Double.formatDecimal(maxFractionDigits: Int): String =
NSNumberFormatter().apply {
minimumFractionDigits = 0u
maximumFractionDigits = maxFractionDigits.convert()
numberStyle = NSNumberFormatterDecimalStyle
}.stringFromNumber(number = NSNumber(double = this)) ?: ""