基本上我有这段代码:
double booster = 1d;
String result = booster % 1d == 0 ? ((int) booster) + "" : booster + "";
根据输入结果返回1或1.X的地方。
这是我正在使用的“固定代码”,以确保行为符合我的预期。我的问题是这样的:
double booster = 1d;
String result = String.valueOf(booster % 1d == 0 ? ((int) booster) : booster);
出于某种奇怪的原因,它会返回1.0而不是1。如果我添加了+“”,它将具有正确的行为:
double booster = 1d;
String result = String.valueOf(booster % 1d == 0 ? ((int) booster) + "": booster);
让这有点奇怪的是,下面的代码可以正常工作,我希望它能像处理X.0数字时那样混乱。
double booster = 1d;
String result = booster % 1d == 0 ? String.valueOf((int) booster) : String.valueOf(booster);
有人知道为什么会这样吗?