在 C 编程中,如果我在下面的等式中使用变量 k、X、Y、n(其中 exp() 是数学常数 e 提升到 ()、pi = 3.14159...、j = sqrt(-1) )并且这些变量都被声明为 64b 双精度浮点数(其中 X 是复数),输出的结果也将是这种数据类型。
output = k * exp(2*pi*j*X*Y/n)
现在,如果我想尝试更智能地管理内存,我想做
k、Y 和 n 为 32 位 unsigned long int(0 到 4294967295),并且
pi、j 和 X 为 32 位浮点数。
我的问题是,输出的结果是数据类型 float (希望如此)还是 unsigned long int ?也就是说,C 语言是否有一些默认规则可以智能地处理浮点数和整数相乘并将结果作为浮点数返回,或者我必须使用类型转换等手动管理该规则?只是想知道在这样的操作中我是否需要担心什么,或者我是否可以将其留给 C 在幕后智能地完成所有操作。
当使用浮点数和整数进行算术时,它总是将其强制为浮点数。也就是说:
- 浮点数*浮点数=浮点数
- 浮点数*整数 = 浮点数
- int*float = 浮点型
- 整数*整数=整数
如果所有值都是整数,您只会收到“整数数学”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)