基于以下问题: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()
}
}
为什么第一个TextView中的分隔符与第二个TextView或EditText中的分隔符不同?它发生在某些语言中。用英语可以,但是例如在波兰没有。
最佳答案
txtTest.text = (1234.5678).toString()
行只是告诉VM,它应该使用标准的数字到字符串转换过程,因此它将放置一个点作为小数点分隔符,如果您使用带有更多小数位的 double 数,它甚至会使用科学计数法。您应该改为从Android开发人员那里浏览此页面,该页面上有使用数字格式的特定方法:https://developer.android.com/reference/java/text/DecimalFormat