我正在从DB中解析一个字符串值,其值如下:
9.00,9.44, 90.00,90.44, 180.00,180.44
为Double并将其存储在列表适配器中并在对话框中充气
这是我用来将其转换为Double的代码。
DecimalFormat decimalFormat = new DecimalFormat("0.00");
double tmp = Double.parseDouble(decimalFormat.format(Double
.parseDouble(string)));
但是,当它转换为Double时,我只能获得一个小数点。哪里错了?
答案 0 :(得分:1)
此代码
String string = "9.44";
DecimalFormat decimalFormat = new DecimalFormat("0.00");
double tmp = Double.parseDouble(decimalFormat.format(Double
.parseDouble(string)))
为tmp赋予与更短更简单的代码完全相同的值
...
double tmp = Double.parseDouble(string);
如果您需要精确的小数点数并且值必须精确,则应使用BigDecimal而不是double。如果你将1.00存储为双倍,你实际上有0.999 ... 7而不是1.00
答案 1 :(得分:0)
试试这个
DecimalFormat decimalFormat = new DecimalFormat("#.00");
double tmp = Double.parseDouble(decimalFormat.format(string));
或
DecimalFormat("##.##")
根据您的要求使用#
进行修改