当前位置: 首页 > 知识库问答 >
问题:

double到int的转换总是导致0

邢卓
2023-03-14

共有1个答案

黄锋
2023-03-14

尝试使用Java提供的Integer类。

Double dblObject=new Double(myDouble);

int cast=dblobject.intvalue();

 类似资料:
  • 前面讲到,C++可以在必要的时候自动将int转换为double,因为这种转换没有损失信息。反之,double转换为int则需圆整。C++不会自动执行这种转换,这是为了让程序员意识到,这样做会损失小数部分。 将浮点数转换为整型数的最简单方法是用类型转换(typecast)。之所以称之为类型转换,是因为它允许你将某种类型的一个值“回炉”成另一类型,这里“回炉”指的是再造或重塑,而非报废。 类型转换的语

  • 问题内容: 我编写的这段代码将转换为获取异常。 这是我的代码 问题答案: 是基元之上的 包装 类。可以将其强制转换为,但不能直接强制转换为。 如果使用代替,它将编译: 您也可以在中间添加演员表,如下所示:

  • 所以我最近写了以下代码: 当我尝试使用cmd运行它时,它一直显示以下内容: 有人能帮我解释一下我犯的错误吗?

  • 问题内容: 所以我的问题是:为什么不执行编译错误? 问题答案: 四种情况中的三种正确报告了错误。复合分配是该规则的唯一例外。Java语言规范,第15.26.2部分,解释了以下原因: 15.26.2复合赋值运算符 形式的复合赋值表达式等效于,其中是的类型,不同之处在于该表达式仅被评估一次。 例如,以下代码是正确的: 并导致x的值为7,因为它等效于: 如您所见,通过隐式插入强制类型转换可以避免该错误。

  • 考虑此代码段: 在我的机器上运行这个会打印两个转换的。但是和只能是吗? 据我所知,这是一个扩展的原语转换,规范中说: 拓宽的基元转换不会丢失有关数值的整体大小的信息。 以及 将int或long值加宽为float或将long值加宽为double可能会导致精度损失 据我所知,上述规范意味着将始终成为,但可以转换为其他内容(例如或类似内容)。我的规格解释正确吗?

  • 问题内容: 所以我最近写了下面的代码: 但是,它一直显示: 当我尝试使用cmd运行它时。 有人可以帮助并解释我所犯的错误吗?任何帮助表示赞赏:)。谢谢! 问题答案: 当您转换到,值的精度损失。例如,当您将4.8657(double)转换为int时,int值将为4.Primitive 不存储十进制数字,因此您将丢失0.8657。 在您的情况下,0.7是一个双精度值(除非提到float-0.7f,否则