如何格式化Double来摆脱0#s

时间:2014-04-01 22:04:00

标签: java string int double

我尝试格式化双精度格式,例如99928.000000只读99928。我知道我可以把它改成一个整数,但是我读的数据已经领先0,整数不会被拿走。我可以以某种方式将其格式化为只读99928

String result = String.format("%f %s,%s (%1.3f; %1.3f)",zip, city, state, latitude,longitude);

当前代码^^感谢您的时间。

5 个答案:

答案 0 :(得分:0)

您已经通过编写.3指定了三个小数位,因此您可以获得它们。如果您不想要它们,请不要指定它们。

我不知道你的意思是什么,以及整数都没有拿起来的零点。双精度数或整数都不包含前导零。

答案 1 :(得分:0)

使用DecimalFormat创建一个带有前导零的String来格式化邮政编码。使用此代码:

DecimalFormat pattern = new DecimalFormat("00000");
String zip = pattern.format(99928.0);
System.out.println(String.format("%s", zip));

输出结果为:

99928

顺便提一下,因为邮政编码中有前导零,所以不应将其读作任何数字数据类型。您应该阅读并将其存储为String

答案 2 :(得分:0)

如果您能够保持前导零,我猜您将99928.000000存储为字符串。

在这种情况下,您应该能够通过在小数点上使用字符串拆分来获得所需的内容。

String foo = "99928.000000"
foo = foo.split("\\.")[0]

答案 3 :(得分:0)

你能否尝试使用DecimalFormat,它说

#   Number  Yes Digit, zero shows as absent

有关详细信息,请参阅here

答案 4 :(得分:0)

对于邮政编码,您应使用"%5.0f"进行掩码,如下所示

String result = String.format("%5.0f %s,%s (%1.3f; %1.3f)", zip, city, state, latitude, longitude);

可能会有所帮助