android - 在 EditText 上显示非常大的 double 值

标签 android android-edittext decimalformat

首先请原谅我的英语不好。

我是 Android 开发新手。我有一个问题,我认为你可以解决它。

问题是:

我的 android 应用程序中有一个非常大的 double 值,如 12345678987654321 但是当我想在 EditText 上显示它时,它会像这样显示 12345678987654300。 在这种情况下,当我的值字符超过 15 个字符 时,android 会显示剩余的字符带有“0”

我不知道我必须做什么。

我正在使用这段代码:

DecimalFormat df = new DecimalFormat("#.#########");
double a = Distancevals[1] * Distancevals[2];
//Distancevals is an array of double with big values
EditText editto = (EditText)findViewById(...);
editto.setText(df.format(a));

最佳答案

Double1.23456789876543E16 格式存储您的号码 12345678987654321,因此您丢失了号码的末尾 21 .当您格式化结果时,已知您的数字由 17 个符号组成,因此 format 函数会在您的数字末尾添加两个零而不是 21

尝试使用这个:

DecimalFormat df = new DecimalFormat("#.#########");
BigDecimal a = new BigDecimal(Distancevals[1] * Distancevals[2]);
// Distancevals is an array of double with big values
EditText editto = (EditText) findViewById(...);
editto.setText(df.format(a));

关于android - 在 EditText 上显示非常大的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667151/

相关文章:

java - 处理自定义 View 中的布局

java - Android Java - 下载管理器未使用正确的名称保存

java - 在DecimalFormat上将点更改为逗号

java - 如何将字符串解析为 BigDecimal?

java - 在 Android 中使用 DecimalFormat 格式化数字

android - Gradle 构建非常慢

java - MulticastSocket 可以发送但不能接收

android - 在EditText之间如何使用自动完成android

android - 具体的 EditText Android

java - 软输入键盘没有隐藏在 edittext 上