栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java JDK-从double到int的可能有损转换

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java JDK-从double到int的可能有损转换

当您转换

double
int
,值的精度损失。例如,当您将4.8657(double)转换为int时,int值将为4.Primitive
int
不存储十进制数字,因此您将丢失0.8657。

在您的情况下,0.7是一个双精度值(除非提到float-0.7f,否则浮点默认情况下被视为double)。计算时

price*much*0.7
,答案是一个双精度值,因此编译器不允许您将其存储在整数类型中,因为这可能会导致精度损失。也就是说
possiblelossy conversion
,您可能会失去精度。

那你能做什么呢?您需要告诉编译器您确实想要这样做。您需要告诉编译器您知道自己在做什么。因此,使用以下代码将double显式转换为int:

int total2= (int) price*much*0.7;  //also called as type casting

在您的情况下,由于您正在计算成本,因此建议您将变量声明

total2
为double或float类型。

double total2=price*much*0.7; float total2=price*much*0.7; //will work


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号