作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
是否有任何编译器具有指令或参数以将整数计算隐式转换为 float 。例如:
float f = (1/3)*5;
cout << f;
“f”是“0”,因为计算的常数(1、3、10)是整数。我想用编译器指令或参数转换整数计算。我的意思是,我不会像那样使用显式转换或“.f”前缀:
float f = ((float)1/3)*5;
或
float f = (1.0f/3.0f)*5.0f;
您知道任何 c/c++ 编译器有任何参数来执行此过程而无需显式强制转换或“.f”吗?
最佳答案
任何执行您想要的操作的编译器都将不再是符合标准的 C++ 编译器。整数除法的语义已明确指定(至少对于正数而言),您打算更改它。
这也很危险,因为它最终会应用于所有事物,并且您可能在某个时候拥有依赖于标准整数算术的代码,这将悄无声息地无效。 (毕竟,如果您有能够捕捉到这一点的测试,那么您大概会有能够捕捉到不需要的整数运算的测试。)
因此,我得到的唯一建议是编写单元测试、进行代码审查并尽量避免魔数(Magic Number)(而是将它们定义为 const float
)。
关于c++ - 隐式转换整数计算以在 C++ 中 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2449578/
我是一名优秀的程序员,十分优秀!