0

我正在为我的软件开发讲座做作业,并被要求编写一个for循环,其中要求用户输入两个数字,这将是要显示的表格的上限和下限。

这是用 BlueJ 编码的,如果有帮助的话(?)

这是我到目前为止的循环,我已经要求这个循环之外的两个数字,并将除i变量之外的所有数字设置为浮点数,i作为双精度数;

for (i = lowNum; i <= highNum; i++) {
         //find square of number
            squareNum = i * i;

         //find cube of number
            cubeNum = i * i * i;

         //find square root of number
            rootNum = Math.sqrt(i);

         //display under appropriate headings
 }

当我尝试运行它时,出现一个编译器错误,说 possible loss of precision, required: float; found: double;我试图将变量类型更改为浮点,但随后出现类似的错误(浮点和双精度被反转)突出显示代码行iMath.sqrt(i);的。

有谁知道如何解决这一问题?

4

2 回答 2

4

Math.sqrt()返回一个双倍。将其转换为浮点数,如下所示:(float)Math.sqrt()

于 2013-11-01T10:22:09.530 回答
0

在你自己的代码中也使用双精度不是更好吗?那么你a)不必为类型转换而烦恼,b)实际上成为编译器如此优雅地试图警告你的精度损失的受害者的机会更小。

做演员更像是告诉编译器闭嘴而不是接受它的帮助,IMO。

于 2013-11-01T12:22:47.610 回答