簡體   English   中英

為什么即使我聲明了 rand,它也會給我一個錯誤?

[英]Why does it give me an error even though I declared rand?

import java.util.Random;

class perro{
    private Float animo;
    private Float umbral;
    Random rand = new Random();
    
    public perro(){
        animo = rand.nextFloat() * (5+5)-5;
        umbral = rand.nextFloat() * (0-20);
    }
    
    public Float getAnimo(){
        return animo;
    }
    
    public Float getUmbral(){
        return umbral;
    }
    
    private void psican(persona p){
        this.animo = (rand.nextFloat() -0.5) * 10 + this.animo;
        if (p.tieneGalleta()){
            p.darGalleta();
            this.animo += (1.0 / p.getConfiabilidad()) * (rand.nextInt(2));
        }
    
    System.out.println("Mi nuevo animo es: " + this.animo);
    }

我收到了這個錯誤:

 "error: incompatible types: double cannot be converted to Float
            this.animo = (rand.nextFloat() -0.5) * 10 + this.animo;"

我已經檢查了所有內容,但是從一開始就將所有內容都表示為浮點數。

因為0.5double (不是float )。 改變這個

this.animo = (rand.nextFloat() -0.5) * 10 + this.animo;

this.animo = (rand.nextFloat() -0.5f) * 10 + this.animo;

或者

this.animo += (rand.nextFloat() - 0.5f) * 10;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM