基于以下问题:Decimal point or decimal comma in Android我尝试获取设备中使用的小数点分隔符。我正在使用Kotlin,因此我的代码如下所示:

import android.icu.text.DecimalFormatSymbols

DecimalFormatSymbols.getInstance().decimalSeparator  // function used in onCreate()
此代码返回 , ,但在设备上,分隔符使用例如在EditText中为 . 。为什么会这样?

我认为它返回错误结果的示例:
import android.icu.text.DecimalFormatSymbols

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        txtSeparator.text = DecimalFormatSymbols.getInstance().decimalSeparator.toString()
        txtTest.text = (1234.5678).toString()
    }
}
android - DecimalFormatSymbols.getInstance()。decimalSeparator返回的十进制分隔符错误-LMLPHP
为什么第一个TextView中的分隔符与第二个TextView或EditText中的分隔符不同?它发生在某些语言中。用英语可以,但是例如在波兰没有。

最佳答案

txtTest.text = (1234.5678).toString()行只是告诉VM,它应该使用标准的数字到字符串转换过程,因此它将放置一个点作为小数点分隔符,如果您使用带有更多小数位的 double 数,它甚至会使用科学计数法。您应该改为从Android开发人员那里浏览此页面,该页面上有使用数字格式的特定方法:https://developer.android.com/reference/java/text/DecimalFormat

07-24 09:49
查看更多