在尝试绘制图形时我得到下面的错误,我的x和y是FLoat类型。
public void paint(Graphics g){
for (int x = 0; x < lols.toArray().length-1; x++) {
City a = lols.get(x);
City b = lols.get(x +1);
g.setColor(Color.BLACK);
g.drawLine(a.getX(), a.getY(), b.getX(), b.getY());
}
我得到的错误:
Error:(83, 42) java: incompatible types: possible lossy conversion from float to int
答案 0 :(得分:0)
Java不允许您将showPrompt(message,offer,getcode) {
this.peopleservice.getCoupun(offer,getcode).subscribe(data=> this.Code=data);
let prompt = this.alertCtrl.create({
title: 'code',
message: message,
inputs: [{
name: 'Code',
placeholder: 'code',
}],
buttons: [{
text: 'Cancel',
handler: data => {
console.log('Cancel clicked');
}
},{
text: 'ok',
handler: data => {
this.Coupun();
}
}
Coupun(){
let prompt =
this.alertCtrl.create({
title: ' code ',
message:"the result for the getCoupun request",
buttons:[{
text: 'Cancel',
handler: data => {
console.log('Cancel');
}
}]
});
prompt.present();
}
分配给float
,因为,正如错误消息所述,您可能会丢失数据(小数点后的所有内容)。如果您无法将int
和x
值更改为y
s(其中,最合适的话),您可以通过明确<来克服此错误/ strong>将int
转换为float
s,表示潜在的数据丢失是故意的,并且您愿意拥有它:
int
答案 1 :(得分:0)
g.drawLine((int) a.getX(), (int) a.getY(), (int) b.getX(), (int) b.getY());
// Here ---^---------------^---------------^---------------^
方法需要四个整数。从错误中可以明显看出g.drawLine(...)
的{{1}}和City
方法返回getX
。
您需要以一致的方式将这些getY
转换为float
,具体取决于这些float
中值的范围。如果范围与int
预期的范围匹配,则可以将它们转换为float
:
drawLine
如果数字转换不好,例如,因为int
和g.drawLine((int)a.getX(), (int)a.getY(), (int)b.getX(), (int)b.getY());
返回-100..100范围内的数字,并且您想在800 x 600画布上绘制它们,添加用于缩放和/或将getX
翻译为getY
的方法,例如
float