You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++14单引号数字分隔符能否用于非整数类型?

C++14中浮点数使用单引号数字分隔符是否安全?

完全安全,不会引发隐式转换。

C++14的单引号数字分隔符特性不仅适用于整数字面量,同样支持浮点数字面量。标准明确规定,单引号可以插入在浮点数的数字序列中(比如整数部分、小数点后的小数部分、指数部分的数字之间),编译器会直接忽略这些分隔符,不会改变字面量的实际值,也不会影响它的类型。

看你给出的代码:

int main()
{
    int foo = 1'000;
    float bar = 1'000.f;
}

这里的1'000.f和1000.f是完全等价的。编译器处理时会自动去掉单引号,直接将其识别为float类型的字面量1000.f,赋值给float类型的变量bar时完全匹配,不存在任何隐式转换。

这个特性的设计初衷就是提升所有数字字面量的可读性,只要单引号的位置合法(不能放在数字开头、结尾,也不能紧邻小数点、指数符号e/E等),所有符合C++14及后续标准的编译器都会正确处理,不用担心兼容性或隐式转换问题。

内容的提问来源于stack exchange,提问作者G.Rassovsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:08:09