Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用大分数时使用哪种数据类型?_Java_Floating Accuracy - Fatal编程技术网

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

Java 使用大分数时使用哪种数据类型?,java,floating-accuracy,Java,Floating Accuracy,我正在从事一个NLP项目,我应该计算这个表达式: 频率=1/345128 我使用的是float和double,它将其读取为0.0,这对我没有帮助,因为我希望精确数字至少达到小数点后6位 早些时候,当我做这项工作时,我只是将这个数字乘以10^6,因为我只是比较两个值。但是现在不同了,我需要确切的数字。是否有我可以使用的变通方法。我怀疑a是一个整数变量,这意味着您的代码使用整数除法截断结果。如果是这种情况,则需要将表达式转换为浮点除法: freq = a / 345128.0; 我怀疑a是一个整数

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

频率=1/345128

我使用的是float和double,它将其读取为0.0,这对我没有帮助,因为我希望精确数字至少达到小数点后6位

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

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

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

freq = a / 345128.0;

必须将分子或分母转换为双精度

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

必须将分子或分母转换为双精度

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