在C中以混合型计算进行铸造?
发布时间:2020-12-16 09:27:16 所属栏目:百科 来源:网络整理
导读:如果我定义这些变量: double x0,xn,h;int n; 我有这个数学表达式: h = (xn - x0)/n; 我是否有必要在进行除法之前将n转换为双精度,以获得最大精度 h = (xn - x0)/ (double) n; 我写了一个程序来检查上面的内容,但两个表达式给出了相同的答案.我理解C会将整
如果我定义这些变量:
double x0,xn,h; int n; 我有这个数学表达式: h = (xn - x0)/n; 我是否有必要在进行除法之前将n转换为双精度,以获得最大精度 h = (xn - x0)/ (double) n; 我写了一个程序来检查上面的内容,但两个表达式给出了相同的答案.我理解C会将整数提升为double类型,因为变量xn和x0的类型为double,但在书中非常奇怪,强调了第二个带有强制转换的表达式. 我的问题是,如果我正在思考. 非常感谢… 解决方法
你的理解是正确的,你读的书要么是错误的要么是过于谨慎(就像声称你应该总是测试0 == x而不是x == 0的人).没有强制转换的表达式应始终提供与使用强制转换的表达式完全相同的结果.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |