[英]Real numbers - how to determine whether float or double is required?
[英]Double as default datatype for real numbers
当任何实数表示10.10作为函数的参数传递时,为什么总是假定它为double而不是float?
编辑:我知道我总是可以使用10.10f,如果我希望它是浮动的。
但是我想知道的是,是否有任何“特定/精确”原因将其假定为double?
当任何实数表示10.10作为函数的参数传递时,为什么总是假定它为double而不是float?
因为文字10.10的类型是double
。
如果您总是将double传递给函数,则参数为“始终假定为double”。
但是我想知道的是,是否有任何“特定/精确”原因将其假定为double?
因为那是双重文字的语法。
如果您在此页面上描述浮点文字的语法 ,那么您会发现
后缀(如果存在)是f,F,l或L之一。后缀确定浮点文字的类型:
- (无后缀)定义双精度
- f F定义浮点
- l L定义长双精度
强调我的。
文字的类型(例如10.10
为double
。 等效的float
文字将是10.10f
或10.10F
。 因此,如果将10.10
作为参数传递给函数,则该参数为double。 但是,在函数声明中设置了函数的参数类型:
void foo(float x); // parameter is float
foo(1.23); // double argument to function with float parameter
如果不允许转换,则参数类型和参数类型之间的任何不匹配都将导致隐式转换(可能导致精度损失)或编译器错误。
“ double”的精度大于“ float”数据类型的精度。 如果要使其为浮点值,请像
10.10f
这将为您工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.