您好,这是我的问题:我一直有错误告诉我类型不兼容即使我的" R.id.total_akylux"是XML文件中的数字(十进制),结果以十进制形式给出。我真的不明白为什么我一直有这个错误。如果有人可以帮助我,那就非常有用。谢谢
答案 0 :(得分:3)
首先:介意QBrutes评论并重新思考你的概念。
您正在尝试为int分配一个double,这正是错误告诉您的内容。现在你使用的int甚至不是你的号码,而是资源的ID。如果您确实想在资源中存储int,请遵循以下答案:https://stackoverflow.com/a/19297523/2694254
关于您的错误
如果没有手动转换,则不能将double赋值为int。
如果你对int / double cast东西感到困惑:
int numberInt = 1;
double numberDouble = 1.8;
//what you are trying to do:
numberInt = numberDouble;
//what you could do:
numberInt = (int) numberDouble; //numberInt is now 1
//with rounding:
numberInt = (int) Math.round(numberDouble); //numberInt is now 2
此外,您可以在xml中存储浮点数而不是int:https://stackoverflow.com/a/20120240/2694254
您也可以将double存储为String,但这需要更多的转换。
答案 1 :(得分:0)
首先,我要感谢您花时间回答我,即使我对这门语言不熟悉。我理解你对我说的话,所以我开始改变我的代码
double prix = 15.90;
double m2 = (longueur_akylux*largeur_akylux)/100;
double total = prix*m2* quantite;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.akylux);
}
@SuppressWarnings("unused")
public void calcul_akylux(View v){
TextView t = (TextView) findViewById(R.id.total_akylux);
t.setText(total);
}
那么,如果我在XML中创建一个数字(十进制),它不会等待一个双倍?我怎么能这样这个数字是小数?
谢谢