我从API调用中收到double
个值。该方法返回此类值2.0
,2.344
,2.034
,3.1
等。
如果我收到2.0
,4.0
之类的值,我想将其转换为2
,4
。我只需要2.0
,3.0
类似的值进行转化。
我怎样才能做到这一点?
答案 0 :(得分:3)
假设这是一个格式化 double
值为String
的问题,确保没有尾随无关紧要的零,我建议使用{{1}控制格式。例如:
DecimalFormat
注意使用import java.text.*;
import java.util.*;
class Test {
public static void main(String[] args) throws Exception {
print(5.0d);
print(5.000000001d);
print(5.1d);
print(123456789.1d);
print(12345e-50);
}
private static void print(double value) {
NumberFormat format = new DecimalFormat(
"0.############",
DecimalFormatSymbols.getInstance(Locale.US));
String text = format.format(value);
System.out.println(text);
}
}
总是以小数点作为小数点分隔符。
Locale.US
中的最后一个示例显示了这里的限制 - 非常接近0的数字将被格式化为“0”,因为我没有提供足够的可选数字(main
部分)来格式化他们更合适。尽管如此,目前还不清楚你想要的是什么。默认表示形式为#
。
答案 1 :(得分:2)
您无法使用float
或double
进行存储,因为它们是浮动的二进制点类型,会产生1.0
,2.0
等。您可以使用{{ 1}}存储格式化的值:
String