JAVA : possible loss of precision

标签 java double precision floating

我用JAVA编写了以下方法:

public static float surface(float r)
    {
        return(4*Math.PI*Math.pow(r,2));
    }

当我运行该类时,出现以下错误:

possible loss of precision
required: float; found: double

我在文档中看到 Math.pow 需要 double 才能工作。如果我需要使用 float ,我该怎么办?

为了测试,我尝试了以下方法,但给出了相同的错误:

public static float surface(float r)
    {
        return(4*Math.PI*r*r);
    }

感谢您的帮助。

最佳答案

您需要将 double 类型转换为 float

public static float surface(float r)
{
    return (float)(4*Math.PI*Math.pow(r,2));
}

请查看Narrowing Primitive Conversion

关于JAVA : possible loss of precision,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17965744/

相关文章:

Lua小数精度损失

math - float 学有问题吗?

matlab - fzero 或 fsolve ?不同的结果 - 谁是正确的?

java - Android计算两个日期之间的天数

java - 如何分隔java字符串的各个部分?

c++ - 通过错误检查将 wstring 转换为 double 的方法

java - DecimalFormat 和 Double 异常

java - Spring Cloud Stream Kafka 生产者消息

java - 使用 Gson 序列化时如何公开类名

java - 如何在android中使用GMT获取当前日期?