我想将Double转换为字符串。 并且只显示小数位。
这样:
Double: 123.465
String: 46
Double: 1123.465
String: 46
Double: 123.46555987
String: 46
现在我的问题是如何做到这一点以及最好的方法是什么?
答案 0 :(得分:0)
toString()
将 Double
转换为String。检查API文档。如果您有double
,自Java 1.6及更高版本以来可以自动将其取消装箱到Double
值。要获得小数,您可以使用substring
的第二个参数来限制输出。
s.substring(s.indexOf("."), s.indexOf(".")+2)
或使用舍入到两位小数
Double.valueOf(Math.round((d/(long)d)*100)/100).toString()
答案 1 :(得分:0)
不完全是最好的方法,但它确实有效。只需将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));
}
}
答案 2 :(得分:0)
这可能有效:
Double d = 123.4567;
String stringRep = Double.toString(d).split(".")[1];
//Print or use stringRep
答案 3 :(得分:0)
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));
答案 4 :(得分:0)
这应该可以帮到你
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);
}