在C中以混合型计算进行铸造?

在C中以混合型计算进行铸造?,第1张

概述如果我定义这些变量: double x0, xn, h;int n; 我有这个数学表达式: h = (xn - x0)/n; 我是否有必要在进行除法之前将n转换为双精度,以获得最大精度 h = (xn - x0)/ (double) n; 我写了一个程序来检查上面的内容,但两个表达式给出了相同的答案.我理解C会将整数提升为double类型,因为变量xn和x0的类型为double,但在书中非常奇怪 如果我定义这些变量:

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的人).没有强制转换的表达式应始终提供与使用强制转换的表达式完全相同的结果. 总结

以上是内存溢出为你收集整理的在C中以混合型计算进行铸造?全部内容,希望文章能够帮你解决在C中以混合型计算进行铸造?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存