微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“类型不匹配:无法从 double 转换为 int 错误”

如何解决“类型不匹配:无法从 double 转换为 int 错误”

.send()

我仍处于 Java 的早期学习阶段,它是我的第一门语言,正在尝试执行程序任务。询问用户房间数量、每个房间面积的简单程序,然后提供 3 种油漆选项的选择,它将计算要油漆的总面积和所需油漆的价格。我收到错误

类型不匹配:无法从 double 转换为 int

解决方法

final int LowSheenCost = 17.6;

17.6 是一个双重文字:它有一个整数部分和一个小数部分。你不能把它放到一个需要整数的变量中。

相反:

final double LowSheenCost = 17.6;

(其他人也一样)。


一个小问题是:

final int PaintCoverage = 16;

有效;但它可能会在以后给你意想不到的结果,因为这样:

(AreaSum / PaintCoverage)

TotalLSCost = (AreaSum / PaintCoverage) * LowSheenCost;

整数除法,也就是说,你只会得到一个整数除法结果:如果|AreaSum| < 16,它的值将为零;如果 16 <= AreaSum < 32,它的值将是一等

因此,如果您打算进行小数除法,也可以将 PaintCoverage 设为 double 而不是 int

,

您必须更改“TotalLSCost; TotalSGCost; TotalMatCost;”的数据类型加倍。 因为在乘法和除法时,输出值有可能有小数位,而 int 不能有小数位。

如果您想要 int 数据类型本身,请尝试在这些行上进行显式转换

    TotalLSCost = (int) (AreaSum / PaintCoverage) * LowSheenCost;
    TotalSGCost = (int) (AreaSum / PaintCoverage) * SemiGlossCost;
    TotalMatCost = (int) (AreaSum / PaintCoverage) * MatteCost;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。