2和2.0有什么区别?


回答 1:

从数学上讲,根本没有区别。 2是整数集的成员,但2.0也是如此! 对于数学家来说,“ 2.0”是完全允许的,但是写“ 2”只是一种更为冗长的方式。

但是,正如此处的一些答案所建议的那样,“ 2.0”可能对工程师意味着测量精确到最接近的1/10,而“ 2”可能只是精确到最接近的整数。

迄今为止,最明显的区别是可以在诸如C和C ++的编程语言以及许多其他语言中找到的……

  • “ 2”是整数,并以此形式存储。 所见即所得—尽管二进制补码格式可用于负数。 但是,“ 2”存储为0000 0000 0000 00010(在16位整数的情况下)。“ 2.0”是浮点数,在进行数学计算时,恰好与“ 2”具有相同的值。 但是它的存储方式不同,以致于位模式在远程看起来并不相同。 因此,在混合整数和浮点数时,程序必须调用转换例程。 这对您来说是隐藏的,但这会使程序变慢。

现在,您可能会问自己:编写程序的意义是什么? 我不能忽略这个问题,让编译器只了解我想做什么,例如在表达式中:

N = 1 + 2.0

某些语言(例如BASIC)可能允许这样做,从而将整数值3存储在N中,而不必大惊小怪。 但是C / C ++对类型要严格得多。 在C或C ++中,“ 2.0”是一个浮点数,因此,即使在这种情况下没有小数部分,该语言仍会发出有关潜在数据丢失的警告。 您可以按以下方式禁止显示此警告:

N = 1 +(整数)2.0;

但是,避免警告消息的更简单,更有效的方法是在进行整数数学运算时仅坚持使用整数,任何好的编程手册都强烈建议您这样做。

N = 1 + 2;


回答 2:

文本中的差异为“ .0”,但它们是相同的数字。 但是,在某些进行隐式转换的计算机语言中,值2将转换为整数,而值2.0将转换为浮点数。 例如,在T-SQL(SQL Server sql)中,这两个选择将返回不同的结果。

选择1/2

返回0

选择1 / 2.0

返回0.5


回答 3:

文本中的差异为“ .0”,但它们是相同的数字。 但是,在某些进行隐式转换的计算机语言中,值2将转换为整数,而值2.0将转换为浮点数。 例如,在T-SQL(SQL Server sql)中,这两个选择将返回不同的结果。

选择1/2

返回0

选择1 / 2.0

返回0.5


回答 4:

文本中的差异为“ .0”,但它们是相同的数字。 但是,在某些进行隐式转换的计算机语言中,值2将转换为整数,而值2.0将转换为浮点数。 例如,在T-SQL(SQL Server sql)中,这两个选择将返回不同的结果。

选择1/2

返回0

选择1 / 2.0

返回0.5