Java 使用DecimalFormat删除最后三个零
我使用jfreechart以毫秒为单位显示轴值,但我希望以秒为单位显示轴标签,因此我使用Java 使用DecimalFormat删除最后三个零,java,jfreechart,decimalformat,Java,Jfreechart,Decimalformat,我使用jfreechart以毫秒为单位显示轴值,但我希望以秒为单位显示轴标签,因此我使用domainAxis.setNumberFormatOverride(新的DecimalFormat(“?”) 那么,删除最后三个零的语法是什么?e、 g:1.000,2.000,3.000到1,2,3。试试这个 String label= "1.000" String slabel= new DecimalFormat("0.####").format(Double.parseDouble(label));
domainAxis.setNumberFormatOverride(新的DecimalFormat(“?”)代码>
那么,删除最后三个零的语法是什么?e、 g:1.000,2.000,3.000到1,2,3。试试这个
String label= "1.000"
String slabel= new DecimalFormat("0.####").format(Double.parseDouble(label));
System.out.println(slabel);
多亏了我设法除以1000
子类化NumberFormat
所以最后的代码很简单:
private static final NumberFormat THOUSANDS = new NumberFormat() {
@Override
public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
new DecimalFormat().format(number / 1000D, toAppendTo, pos);
return toAppendTo;
}
@Override
public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {
return format((double) number, toAppendTo, pos);
}
@Override
public Number parse(String source, ParsePosition parsePosition) {
return null;
}
};
电话:
domainAxis.setNumberFormatOverride(千)代码>谢谢@karthick23,它使用字符串工作,但我不知道为什么在jfreechart中没有。只有点消失:/当值为1000、2000、3000
且您希望显示1、2、3
时,需要将它们除以1000
。看起来点是你所在区域的thausand分隔符。如果我的假设是错误的,请纠正我。@次优是的,我尝试了不同的区域设置,以便可以使用点、昏迷或删除千分位。问题是如何使用DecimalFormat
语法除以1000
。您可能正在查找setDateFormatOverride()
,请参阅。交叉发布。