条件数字格式?

问题描述 投票:0回答:2

有没有办法使NumberFormatter执行以下操作:

  1. 如果Double是5.0之类的整数,则显示“5”
  2. 如果Double是小数,如5.6,则显示“5.6”
java format number-formatting numberformatter
2个回答
-1
投票
double someNum = 5.6d;
DecimalFormat df = new DecimalFormat("#.#");
String num = df.format(someNum);
if (num.substring(num.length - 1).equals("0")) {
    num = num.substring(0, num.length - 2);
}
System.out.println(num);

DecimalFormat实例将double格式化为字符串。代码检查精度的第十位,即小数点右边的第一个数字,如果是零,则它只显示整数。否则,它显示完整的精度。


0
投票

我知道这是一个老问题,但这应该完全符合你的要求:

    var myNumber:Double = 0.0  // set to 5.0 or 5.6 to see result

    let formatter = NumberFormatter()
    formatter.maximumFractionDigits = 4
    let x = formatter.string(from: NSNumber(value: myNumber)) ?? "$\(myNumber)"
    print("x = \(x)")
© www.soinside.com 2019 - 2024. All rights reserved.