我正在转换我的钱袋以保持超过最大整数。我被困在这里:
public String getFormattedValue(double value) {
if (value >= 1000 && value < 10e+5) {
return formatValue(value / 1000, 2) + "k";
} else if (value >= 10e+5 && value <= 10e+8) {
return formatValue(value / 10e+5, 3) + " million";
} else if (value >= 10e+8 && value <= ***?***) {
return formatValue(value / 10e+8, 3) + " billion";
} else if (value >= ***?*** && value <= ***??***) {
return formatValue(value / 10e+8, 3) + " trillion";
} else {
return formatValue(value, 2);
}
}
***?***
应该= 10亿&amp; ***??***
应该= 1万亿。我很困惑,因为我不是最聪明的数学&amp;谷歌不会为我格式化。
像“10e + 8”这样的数学方程是什么= 1百万到10亿。
答案 0 :(得分:2)
我不熟悉formatValue函数,但我认为您可以执行以下操作:
public String getFormattedValue(double value)
{
long thousands = (long)(value / 1000);
long millions = (long)(value / 1000000);
long billions = (long)(value / 1000000000);
long trillions = (long)(value / 1000000000000L);
if (trillions > 0)
return formatValue(trillions) + " trillion";
else if (billions > 0)
return formatValue(billions) + " billion";
else if (millions > 0)
return formatValue(millions) + " million";
else if (thousands > 0)
return formatValue(thousands) + " k";
else
return ("" + value);
}