使用大分数时要使用哪种数据类型?

时间:2013-03-11 10:37:44

标签: java floating-accuracy

我正在研究一个NLP项目,我应该计算这个表达式:

  

FREQ =345128分之1

我正在使用float和double,它正在读取0.0,这对我没有帮助,因为我希望确切的数字至少为6位小数。

早些时候,当我这样做时,我只是将数字乘以10 ^ 6,因为我只是比较了两个值。但现在它有所不同,我需要确切的数字。有没有可用的工作我可以使用。

2 个答案:

答案 0 :(得分:8)

我怀疑a是一个整数变量,这意味着你的代码使用整数除法(截断结果)。如果是这种情况,则需要将表达式转换为浮点除法:

freq = a / 345128.0;

答案 1 :(得分:1)

你必须将分子或分母转换为double。

public class TestMain
{
    public static void main(String args[])
    {
        double freq=1d/345128d;
        System.out.println(freq);
    }
}