如何在C++中编写带逗号千位分隔符的数字字面量
C++ 不支持逗号作为数字字面量的千位分隔符
你给出的写法int x = 1,000,000;无法正常编译运行:此处的逗号会被编译器解析为逗号运算符,整个表达式的计算逻辑是依次执行1、000、000三个子表达式,最终将最后一个子表达式的值0赋值给x,和你的预期完全不符。
可用替代方案
- 如果你使用的是C++14及以上版本的标准,可以用单引号
'作为数字字面量的分隔符,写法如下:
该写法符合C++标准要求,编译器会正常识别为数值int x = 1'000'000;1000000,且支持整数、浮点数、二进制/八进制/十六进制字面量使用,例如:double pi = 3.141'592'653; int bin_val = 0b1010'1100'0011; - 如果你必须使用C++14之前的标准,可以用宏定义做临时兼容,但该方案存在局限性,不推荐生产环境使用:
#define NUM_SEQ(...) __VA_ARGS__ int x = NUM_SEQ(1,000,000);
内容的提问来源于stack exchange,提问作者user16255957
相关产品推荐
相关产品推荐

