我认为应该有所作为,但Java并不喜欢它。
我收到此错误:
project5.java:10: error: incompatible types: possible lossy conversion from double to int
int Low = Math.sqrt(count);
^1 error
这是我的代码:
import java.util.*
public class project5
{
public static void main (String args[])
{
int count = 1;
while (count < 11) {
Random r = new Random();
int Low = Math.sqrt(count);
int High = count;
int Result = r.nextInt(High-Low) + Low;
System.out.println( count + "\t" + Math.sqrt(count));
count++;
}
}
}
有什么建议吗?
答案 0 :(得分:3)
您可以将结果转换为int
:
int Low = (int) Math.sqrt(count);
如果从结果中取得成功,你可以正常工作。如果你想要它四舍五入,那么做
(int) Math.round(Math.sqrt(count));
在这种特定情况下,int
可以安全地投放到count
,因为int
是sqrt
,而int
始终适合<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPrimary" />
<item>
<bitmap
android:src="@drawable/bebe"
android:gravity="center"
android:alpha="0.1" />
</item>
<item android:top="260dp"
android:bottom="-100dp"
android:left="0dp"
android:right="-260dp">
<rotate
android:fromDegrees="-10"
android:pivotX="0%"
android:pivotY="100%">
<shape
android:shape="rectangle">
<solid
android:color="@android:color/white"/>
</shape>
</rotate>
</item>
</layer-list>
范围。
答案 1 :(得分:0)
将sqrt转换为int,你将丢失小数部分......
int Low = (int) Math.sqrt(count);
答案 2 :(得分:0)
此错误表示您尝试将double
分配给int
。
Math.sqrt
方法返回双精度:https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#sqrt(double)
如果要将此值分配给整数,可以简单地将其转换为整数:
int Low = (int)Math.sqrt(count);
注意:如果sqrt
方法的结果不是整数,则将结果转换为整数会将结果的整个部分分配给整数:
System.out.println(String.valueOf((int)Math.sqrt(5))); // Prints 2