fix: error when output float

This commit is contained in:
2023-11-10 00:15:40 +08:00
parent 162953f39e
commit 647f53cadd
2 changed files with 10 additions and 6 deletions

View File

@ -46,16 +46,20 @@ void FucntionContainer::AddFunction(const std::string &name,
FunctionIndex[name] = item;
}
std::any FucntionContainer::CallFunction(
const std::string &name, const std::vector<ParaArguItemType> &args,
VariableContainer &Variables) {
std::any FucntionContainer::CallFunction(const std::string &name,
std::vector<ParaArguItemType> &args,
VariableContainer &Variables) {
if (name == "print") {
bool is_first = true;
for (int i = 0; i < args.size(); i++) {
if (!is_first) std::cout << ' ';
is_first = false;
std::string buf = Any2String(args[i].value);
std::cout << buf;
double *value_ptr = std::any_cast<double>(&args[i].value);
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';
return nullptr;