申请/游戏的钱柜台

时间:2013-12-27 08:14:39

标签: java

我正在转换我的钱袋以保持超过最大整数。我被困在这里:

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亿。

1 个答案:

答案 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);
}