我正在尝试使用DecimalFormat转换double值的Decimal分隔符,同时保留原始数字的所有小数。DecimalFormatter接受格式为“0。##”的模式。因为我必须使用具有不同小数的数字,所以这不起作用,因为总是需要在模式中指定小数位数。
我正在寻找一种解决这个问题的方法。
我试过String.format。DecimaFormatter和NumberFormatter
理想情况下我想要的是:
private static final ThreadLocal< DecimalFormat > formatter = new ThreadLocal< DecimalFormat >()
{
@Override
protected DecimalFormat initialValue()
{
// n should be any number of decimals without having to specify them.
return new DecimalFormat("0.0#n");
}
};
一些例子:
DecimalFormat df = new DecimalFormat("0.0##");
System.out.println(df.format(2.456))
System.out.println(df.format(2.1));
结果:
2,456 -> Good
2,100 -> Not good
我想设置一个模式/正则表达式,它将适用于小数点分隔符之后的任意位数的双精度数:
2,456 -> Good
2,1 -> Good
3,3453456345234 -> Good
UYOU
陪伴而非守候
相关分类