有时,编写代码时,会出现这样的情况
(double)Number1/(int)Number2 //division of a double type varible by a int one.在我看来(我想,对你们所有人来说或多或少都是这样),如果我重写(double) over (int),我永远不知道会发生什么。
(double)Number1/(double)Number2表演是一样的吗?那么精确程度呢?执行任务所需的时间..。改变?在一般情况下(如果可以这样说的话),编译器是否会编写相同的二进制文件?例如,exe文件?叫ALU接线员换了吗?
我相信,一个正式的答案将取决于机器的架构,编译器和语言,以及更多的东西。但是..。在这些情况下,如何对“我的代码”中会发生的事情有一个概念,以及有什么选择会更好(如果有明显的差别)?
谢谢大家的回复!
发布于 2018-10-08 03:47:22
精确度可能会有所不同。
例如,如果Number2最初是一个double,那么在除法之前将其转换为带有(int)Number2的int,可能会通过在二进制点之后截断任何位,或者通过截断不适合于int的整数位来丢失大量信息。
https://stackoverflow.com/questions/52694114
复制相似问题