有一段时间,我一直用科学记数法表示常量中10的大功率,所以我不需要计算零.例如
#define DELAY_USEC 1e6
Run Code Online (Sandbox Code Playgroud)
一位同事指出这不安全,因为它不是一个整数,并且不能保证总是完全等于1000000 .文档似乎证实了这一点,但我想知道它的实用性是否真实.有没有办法用速记安全地声明十次幂的整数?将它强制转换为定义中的int是否安全?
您想要使用用户定义的文字:
constexpr long long operator "" _k(long long l) {
return l * 1000;
}
constexpr long long operator "" _m(long long l) {
return l * 1000 * 1000;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以简单地做:
long long delay = 1_m;
long long wait = 45_k;
Run Code Online (Sandbox Code Playgroud)
你具体问十个权力. 1e6将是一百万.你可以在1e22没有任何不良事件的情况下前进.但请注意,在C++和C中,1e6都是double常量,而不是整数常量.
十个负面的力量是一个不同的故事. 1e-1与所有低权力一样,是不精确的.
| 归档时间: |
|
| 查看次数: |
15094 次 |
| 最近记录: |