fix: error when output float
This commit is contained in:
@ -89,7 +89,7 @@ class FucntionContainer {
|
|||||||
public:
|
public:
|
||||||
void AddFunction(const std::string &name, const FunctionItem &item);
|
void AddFunction(const std::string &name, const FunctionItem &item);
|
||||||
std::any CallFunction(const std::string &name,
|
std::any CallFunction(const std::string &name,
|
||||||
const std::vector<ParaArguItemType> &args,
|
std::vector<ParaArguItemType> &args,
|
||||||
VariableContainer &Varables);
|
VariableContainer &Varables);
|
||||||
};
|
};
|
||||||
std::any DeQuate(std::any val, VariableContainer &Variables);
|
std::any DeQuate(std::any val, VariableContainer &Variables);
|
||||||
|
@ -46,16 +46,20 @@ void FucntionContainer::AddFunction(const std::string &name,
|
|||||||
FunctionIndex[name] = item;
|
FunctionIndex[name] = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::any FucntionContainer::CallFunction(
|
std::any FucntionContainer::CallFunction(const std::string &name,
|
||||||
const std::string &name, const std::vector<ParaArguItemType> &args,
|
std::vector<ParaArguItemType> &args,
|
||||||
VariableContainer &Variables) {
|
VariableContainer &Variables) {
|
||||||
if (name == "print") {
|
if (name == "print") {
|
||||||
bool is_first = true;
|
bool is_first = true;
|
||||||
for (int i = 0; i < args.size(); i++) {
|
for (int i = 0; i < args.size(); i++) {
|
||||||
if (!is_first) std::cout << ' ';
|
if (!is_first) std::cout << ' ';
|
||||||
is_first = false;
|
is_first = false;
|
||||||
std::string buf = Any2String(args[i].value);
|
double *value_ptr = std::any_cast<double>(&args[i].value);
|
||||||
std::cout << buf;
|
if (!value_ptr) {
|
||||||
|
std::string buf = Any2String(args[i].value);
|
||||||
|
std::cout << buf;
|
||||||
|
} else
|
||||||
|
std::cout << std::fixed << std::setprecision(6) << *value_ptr;
|
||||||
}
|
}
|
||||||
std::cout << '\n';
|
std::cout << '\n';
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
Reference in New Issue
Block a user