EQRGERG
老蟹生
采纳率100%
2021-02-28 21:35

谁能告诉我强制转换这几个的区别?

a=double(a/b)

a=(double)a/b

a=double(a)/b

a=(double)(a/b)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_34124780 qq_34124780 1月前

    double(xxx)是C++的语法,相当于析构函数构造了一个双精度浮点数,参数为xxx,而(double)是强制转换,这个是c和c++都有的。

    a=double(a/b):构造一个(a/b)的双精度浮点数。

    a=(double)a/b:先将a强制转成double,然后除以b。

    a=double(a)/b:构造参数为a的double,然后除以b。

    a=(double)(a/b):强制转换a/b的结果。

    点赞 评论 复制链接分享
  • peng450 peng450 1月前

    每次的算术运算一般是按照最复杂的变量类型进行运算。我们假设a,b是int的 3, 2
    a=double(a/b): int / int -> double    3/2 = 1, 1-> 1.0
    a=(double)a/b:3->3.0, 3.0/2=1.5
    以下类推,

    点赞 评论 复制链接分享