我的号码是654987.它是数据库中的ID。我想将它转换为字符串。 常规的Double.ToString(value)使其成为科学形式,6.54987E5。我不想要的东西。

我发现的其他格式化函数检查当前的语言环境并添加适当的千位分隔符等。由于它是一个ID,我无法接受任何格式化。

怎么做?

[编辑]澄清:我正在开发一个特殊的数据库,将所有数字列视为双精度数。 Double是我可以从数据库中检索的唯一(数字)类型。

有帮助吗?

解决方案

使用长:

long id = 654987;
String str = Long.toString(id);

其他提示

使用固定的 NumberFormat (具体而言) DecimalFormat ):

double value = getValue();
String str = new DecimalFormat("#").format(value);

或者简单地转换为 int (或 long ,如果值的范围太大):

String str = String.valueOf((long) value);

但话又说回来:为什么你首先在 double 变量中有一个整数值(即一个“整数”)?

如果它是数据库中的整数id,请改用Integer。然后它将格式化为整数。

String.valueOf((long)value);

怎么样:

Long.toString(value)

new String(value)

您也可以使用

double value = getValue();

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);

String strVal = f.format(value);

如果您存储的是一个ID(即仅用于标识另一个实体,其实际数值没有意义),那么您不应该使用Double来存储它。精确几乎肯定会让你失望。

如果您的数据库不允许整数值,那么您应该将ID存储为字符串。如果需要,使字符串成为您要使用的整数的字符串表示形式。通过适当使用前导零,您可以使字符串的字母顺序与整数的数字顺序相同。

这应该让你解决问题。

Long.toString((长)值怎么样?

    double d = 56789;
    String s = d+"";
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top