如何将1除以25(1/25)并在java中得到结果.04

时间:2015-01-23 19:43:32

标签: java math

如果使用普通BODMAS操作执行,则返回0

我有这样的事情:

int mbUsed=1;

int mbTotal=25;

int percent=(mbUsed/mbTotal)*100;

4 个答案:

答案 0 :(得分:1)

1/25将返回0,因为int division不能返回分数。

你可以为浮点除法加倍:

int percent=(int) ((double)mbUsed/mbTotal)*100;

或者如果您想要更准确的结果:

double percent = ((double)mbUsed/mbTotal)*100;

如果你想继续使用int division,你可以改变运算符的顺序:

int percent = (100*mbUsed)/mbTotal;

答案 1 :(得分:1)

int中的Java数据类型包含整个值。您应该将值存储在doublefloat数据类型中,因为它们可以包含小数点。

在这里你可以看到一个例子:

public static void main(String[] args) {

    int iVal1 = 1;
    int iVal2 = 25;
    int iVal3 = iVal1 / iVal2;

    System.out.println("Integer storage, int variables: " + iVal3);

    double dVal1 = iVal1 / iVal2;

    System.out.println("Double storage, int variables: " + dVal1);

    double dVal2 = (double) iVal1 / (double) iVal2;

    System.out.println("Double storage, double variables: " + dVal2);
}

哪个输出:

Integer storage, int variables: 0
Double storage, int variables: 0.0
Double storage, double variables: 0.04

请注意您分割的值也必须至少具有double精度。在我的示例中,我只需将其转换为double(因为它们是整数,但它没有区别),但您也可以将它们存储在double数据类型中。

答案 2 :(得分:0)

你也可以使用BigDecimal,所以对于其他比例你可以操纵比例: http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html 特别推荐用于货币。

BigDecimal dividend= BigDecimal.ONE;
BigDecimal divisor = new BigDecimal(25);
BigDecimal result = dividend.divide(divisor );

答案 3 :(得分:0)

您也可以考虑仅为您的值mbUsedmbTotal使用双打。

示例:

double mbUsed = 1;
double mbTotal = 25;
double percent = (mbUsed * 100)/mbTotal;

如果mbUsedmbTotal的数字发生变化,您甚至可以添加小数格式。

示例:

DecimalFormat df = new DecimalFormat("#.00");

然后,您可以在df.format(percent)语句中使用System.out.println来显示舍入到两个小数点的百分比。

以下是一些可以编译的代码示例:

double mbUsed = 1;
double mbTotal = 25;
double percent = (mbUsed * 100)/mbTotal;   

DecimalFormat df = new DecimalFormat("#.00");

System.out.println("The number used: " + df.format(mbUsed));
System.out.println("The total number: " + df.format(mbTotal));
System.out.println("The percentage used is: " + df.format(percent) + "%.");

输出:

The number used: 1.00
The total number: 25.00
The percentage used is: 4.00%

我希望这对你有用!