条件 NumberFormatter?
Conditional NumberFormatter?
有没有办法制作一个执行以下操作的 NumberFormatter:
如果Double是整数如5.0,则显示"5"
如果Double是小数如5.6,则显示"5.6"
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 格式化为字符串。该代码检查精度的第十位,即小数点右侧的第一位数字,如果为零,则仅显示整数。否则,它显示完整的精度。
我知道这是一个老问题,但这应该完全符合您的要求:
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)")
有没有办法制作一个执行以下操作的 NumberFormatter:
如果Double是整数如5.0,则显示"5"
如果Double是小数如5.6,则显示"5.6"
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 格式化为字符串。该代码检查精度的第十位,即小数点右侧的第一位数字,如果为零,则仅显示整数。否则,它显示完整的精度。
我知道这是一个老问题,但这应该完全符合您的要求:
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)")