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 show1.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表示是打印的格式,而不是值本身。