Java 返回double和long中的两个十进制数

Java 返回double和long中的两个十进制数,java,casting,double,decimal,long-integer,Java,Casting,Double,Decimal,Long Integer,我想把一个长数字设为一个双倍数字。 问题是我想以十进制格式返回它。 例如:我有一个很长的号码 long a = 123456; 然后我抛出double b=(double)a 现在b show1.234**E**5。 我想让b完全像a:123456.0一样显示。不要在这里使用“E” 我将其转换为String,然后将解析转换为double。像这样 b = Double.parseDouble(new Long(a).toString())); 任何人有更好的想法,请分享给我。 谢谢。无需长距离

我想把一个长数字设为一个双倍数字。 问题是我想以十进制格式返回它。 例如:我有一个很长的号码

long a = 123456;
然后我抛出
double b=(double)a
现在b show
1.234**E**5
。 我想让b完全像
a:123456.0
一样显示。不要在这里使用“E” 我将其转换为String,然后将解析转换为double。像这样

b = Double.parseDouble(new Long(a).toString()));
任何人有更好的想法,请分享给我。
谢谢。

无需长距离施放或在双对象上使用toString

只需使用DescimalFormat:

DecimalFormat f = new DecimalFormat("#.0");
System.out.println(f.format(123456L));
正如您所看到的,123456L是一个长数值,但它的格式是您想要的


祝你好运。

选角无关紧要。您需要格式化,如字符串格式化。请使用DecimalFormat,有关ideasIt的信息,请参阅、。但我想要的是返回一个不带“E”的双倍数字。我用字符串做临时工。然后解析为double。b=Double.parseDouble(新的Long(a).toString())您的方法是使用DecimalFormat作为临时变量,然后解析为Double。这条路怎么走better@AnTran:因此,您的问题完全不同,因为任何人都会在打印双值时将您的问题视为格式化输出。如果您的问题是关于将长距离转换为双倍距离,则方法是double d=新的double(123456L);如果将双精度字符视为###############这是默认格式的打印方式。但这是一个双重价值。E表示是打印的格式,而不是值本身。