我想在Java中打印一个没有指数形式的双值。
double dexp = 12345678;
System.out.println("dexp: "+dexp);
它显示了这个E符号:1.2345678E7。
我希望它像这样打印:12345678
预防这种情况的最好方法是什么?
我想在Java中打印一个没有指数形式的双值。
double dexp = 12345678;
System.out.println("dexp: "+dexp);
它显示了这个E符号:1.2345678E7。
我希望它像这样打印:12345678
预防这种情况的最好方法是什么?
当前回答
这对我很有用。输出将是一个字符串。
String.format("%.12f", myvalue);
其他回答
这对我很有用。输出将是一个字符串。
String.format("%.12f", myvalue);
这可能是一个切线....但如果你需要把一个数值作为一个整数(太大而不能成为一个整数)放入一个序列化器(JSON等),那么你可能需要“biginteger”
例子:
值为字符串- 7515904334
我们需要在Json消息中以数字形式表示它:
{
"contact_phone":"800220-3333",
"servicer_id":7515904334,
"servicer_name":"SOME CORPORATION"
}
我们不能打印它,否则会得到这个:
{
"contact_phone":"800220-3333",
"servicer_id":"7515904334",
"servicer_name":"SOME CORPORATION"
}
像这样向节点添加值会产生期望的结果:
BigInteger.valueOf(Long.parseLong(value, 10))
我不确定这是否真的切题,但由于这个问题是我在寻找解决方案时最热门的问题,我想我应该在这里分享一下,以造福于那些搜索不好的人。: D
使用字符串。格式(“%。0 f”,数量)
%。0f表示0小数
String numSring = String.format ("%.0f", firstNumber);
System.out.println(numString);
你可以使用printf()与%f:
double dexp = 12345678;
System.out.printf("dexp: %f\n", dexp);
这将打印出dexp: 12345678.000000。如果你不想要小数部分,就用
System.out.printf("dexp: %.0f\n", dexp);
0在%。0f表示小数部分有0个位置,即没有小数部分。如果你想打印所需小数位数的小数部分,那么只需提供像%.8f这样的数字,而不是0。默认情况下,小数部分打印到小数点后6位。
这使用文档中解释的格式说明符语言。
在原始代码中使用的默认toString()格式在这里详细说明。
我认为每个人的想法都是正确的,但并非所有的答案都是直截了当的。 我认为这是一段非常有用的代码。下面是一些可行的方法:
System.out.println(String.format("%.8f", EnterYourDoubleVariableHere));
”。“8”是您设置要显示的小数点后数位的位置。
我正在使用Eclipse,它工作没有问题。
希望这对你有帮助。我将感激任何反馈!