我想将 Double 转换为字符串。并且只显示小数位。
在这条路上:
Double: 123.465
String: 46
Double: 1123.465
String: 46
Double: 123.46555987
String: 46
现在是我的问题,我该怎么做,最好的方法是什么?
Double: 123.465
String: 46
Double d = new Double(123.465);
String str = String.valueOf(d);
Sytem.out.println(str.substring(str.lastIndexOf("."),str.lastIndexOf(".")+2));
不完全是最好的方法,但它有效。只需将 123.456 更改为您希望的任何值,也许将其放入方法中。
public class Test {
public static void main(String args[]) {
double fractionalPart = 123.456 % 1;
DecimalFormat twoDForm = new DecimalFormat("#.00");
System.out.println(String.valueOf(
Double.valueOf(twoDForm.format(fractionalPart))).substring(2));
}
}
Double
可以使用toString()
. 检查 API 文档。如果您有,那么自 Java 1.6 及更高版本以来double
,它可能会自动拆箱为value。Double
要获得小数,您可以使用第二个参数substring
来限制输出。
s.substring(s.indexOf("."), s.indexOf(".")+2)
或使用四舍五入到小数点后两位
Double.valueOf(Math.round((d/(long)d)*100)/100).toString()
这应该可以帮助你
public static int twoDecimal(double original)
{
BigDecimal bd = new BigDecimal(original % 1);
BigDecimal rounded = bd.setScale(2, BigDecimal.ROUND_DOWN);
return (int) (rounded.doubleValue() * 100);
}
这可能有效:
Double d = 123.4567;
String stringRep = Double.toString(d).split(".")[1];
//Print or use stringRep