小编Adr*_*ček的帖子

在Javascript中舍入负数

我们在javascript中遇到了Math.round()的问题.问题是此函数不能正确舍入负数.例如 :

1.5~ = 2

0.5~ = 1

-0.5~ = 0 //错了

-1.5~ = -1 //错了

根据算术舍入,这是不正确的.-0.5的正确数字应为-1,-1.5应为-2.

有没有标准的方法,在Javascript中正确舍入负数?

javascript math rounding

8
推荐指数
3
解决办法
5149
查看次数

类型名之前的模板值

我有以下简化的示例代码,我试图找出给定值是否是其类型的枚举的最大值。

enum class MyEnum : unsigned char {
    VALUE,
    OTHER_VALUE,
    _LAST
};

template<typename T, T _L>
bool is_not_last(T value) {
    return value < _L;
}

int main()
{
    is_not_last<MyEnum, MyEnum::_LAST>(MyEnum::OTHER_VALUE);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何格式化模板,以便我可以is_not_last在不先指定类型的情况下进行调用。

期望的结果: is_not_last<MyEnum::_LAST>(MyEnum::OTHER_VALUE);

以下声明不起作用:

template<T _L>
bool is_not_last(T value); // Doesn't have typename specified

template<typename T _L>
bool is_not_last(T value); // Invalid syntax
Run Code Online (Sandbox Code Playgroud)

我觉得编译器应该能够从中推断出类型MyEnum::_LAST,但我还没能弄清楚。

非常感谢。

c++ templates

4
推荐指数
1
解决办法
75
查看次数

标签 统计

c++ ×1

javascript ×1

math ×1

rounding ×1

templates ×1