【问题标题】:What does the '.' after the 60 mean in the expression? [duplicate]'.' 是什么意思?表达式中的 60 后均值? [复制]
【发布时间】:2020-11-22 17:13:41
【问题描述】:

'.' 是什么意思?表达式中 60 后的均值?

double timeSaved(int limit, int avgs, int dis)
{
    double time_limit = 60.*dis/limit;
    double time_avgs  = 60.*dis/avgs;
    double tsave = time_limit-time_avgs;
    tsave = 10*tsave+.5;
    tsave = ((int)tsave)/10.0;
    return tsave;
}

【问题讨论】:

  • 60.0
  • 60 是一个int,而60. 是一个double(与60.0 相同)。
  • 旁白:而不是用tsave = 10*tsave+.5; tsave = ((int)tsave)/10.0;四舍五入到最接近的十分之一。使用tsave = round(tsave*10.0)/10.0;

标签: c++ c++11


【解决方案1】:

这是一个浮点字面量。浮点文字的两种可能语法是 (cppreference):

digit-sequence(optional) . digit-sequence exponent(optional) suffix(optional)

digit-sequence . exponent(optional) suffix(optional)

请注意,exponentsuffix 是可选的。在第一个中,. 之后有一个digit-sequence,而在第二个中则没有。 60.60.0 相同。

没有.integer literal。因此60. 的类型与60 不同。

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2013-11-22
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多