diff --git a/src/expression_evaluator.cpp b/src/expression_evaluator.cpp index 136e33d8..019f1493 100644 --- a/src/expression_evaluator.cpp +++ b/src/expression_evaluator.cpp @@ -127,7 +127,7 @@ InternalValue BinaryExpression::Evaluate(RenderContext& context) case jinja2::BinaryExpression::Minus: case jinja2::BinaryExpression::Mul: case jinja2::BinaryExpression::Div: - case jinja2::BinaryExpression::DivReminder: + case jinja2::BinaryExpression::DivRemainder: case jinja2::BinaryExpression::DivInteger: case jinja2::BinaryExpression::Pow: result = Apply2(leftVal, rightVal, m_oper); diff --git a/src/expression_evaluator.h b/src/expression_evaluator.h index 06b1c40f..5bd7031d 100644 --- a/src/expression_evaluator.h +++ b/src/expression_evaluator.h @@ -452,7 +452,7 @@ class BinaryExpression : public Expression Minus, Mul, Div, - DivReminder, + DivRemainder, DivInteger, Pow, StringConcat diff --git a/src/expression_parser.cpp b/src/expression_parser.cpp index c8929367..3567d966 100644 --- a/src/expression_parser.cpp +++ b/src/expression_parser.cpp @@ -242,7 +242,7 @@ ExpressionParser::ParseResult> ExpressionPars operation = BinaryExpression::DivInteger; break; case '%': - operation = BinaryExpression::DivReminder; + operation = BinaryExpression::DivRemainder; break; default: lexer.ReturnToken(); diff --git a/src/value_visitors.h b/src/value_visitors.h index 4ac874f5..193680c5 100644 --- a/src/value_visitors.h +++ b/src/value_visitors.h @@ -552,8 +552,8 @@ struct BinaryMathOperation : BaseVisitor<> case jinja2::BinaryExpression::Div: result = left / right; break; - case jinja2::BinaryExpression::DivReminder: - result = std::remainder(left, right); + case jinja2::BinaryExpression::DivRemainder: + result = std::fmod(left, right); break; case jinja2::BinaryExpression::DivInteger: { @@ -607,7 +607,7 @@ struct BinaryMathOperation : BaseVisitor<> result = left / right; break; case jinja2::BinaryExpression::Div: - case jinja2::BinaryExpression::DivReminder: + case jinja2::BinaryExpression::DivRemainder: case jinja2::BinaryExpression::Pow: result = this->operator ()(static_cast(left), static_cast(right)); break; diff --git a/test/expressions_test.cpp b/test/expressions_test.cpp index 33f044ae..462f50bd 100644 --- a/test/expressions_test.cpp +++ b/test/expressions_test.cpp @@ -20,6 +20,7 @@ R"( {{ 7 / 3}} {{ 7 // 3 }} {{ 7 % intValue }} +{{ 11 % 7 }} {{ 3 ** 4 }} {{ 10 ** -2 }} {{ 10/10 + 2*5 }} @@ -48,6 +49,7 @@ R"( 2.3333333 2 1 +4 81 0.01 11