update num->string algorithm, now the to_string will output strings with no tailing zeros
This commit is contained in:
parent
debe32b187
commit
99f595e16f
|
@ -811,7 +811,7 @@ Finally i learned `LL(1)` and `LL(k)` and wrote a parser for math formulas in ve
|
|||
|
||||
In version 0.17(2019/9/15) 0.18(2019/9/18) 0.19(2019/10/1)i was playing the parser happily and after that i wrote version 1.0.
|
||||
|
||||
__This project began at 2019/8/31__.
|
||||
__This project began at 2019/7/25__.
|
||||
|
||||
## __Abstract Syntax Tree__
|
||||
|
||||
|
|
|
@ -399,8 +399,11 @@ nasal_ref builtin_str(nasal_ref* local,nasal_gc& gc)
|
|||
nasal_ref val=local[1];
|
||||
if(val.type!=vm_num)
|
||||
return builtin_err("str","\"number\" must be number");
|
||||
std::string tmp=std::to_string(val.num());
|
||||
tmp.erase(tmp.find_last_not_of('0')+1,std::string::npos);
|
||||
tmp.erase(tmp.find_last_not_of('.')+1,std::string::npos);
|
||||
nasal_ref ret=gc.alloc(vm_str);
|
||||
*ret.str()=std::to_string(val.num());
|
||||
*ret.str()=tmp;
|
||||
return ret;
|
||||
}
|
||||
nasal_ref builtin_size(nasal_ref* local,nasal_gc& gc)
|
||||
|
|
|
@ -312,7 +312,12 @@ std::string nasal_ref::to_string()
|
|||
if(type==vm_str)
|
||||
return *str();
|
||||
else if(type==vm_num)
|
||||
return std::to_string(num());
|
||||
{
|
||||
std::string tmp=std::to_string(num());
|
||||
tmp.erase(tmp.find_last_not_of('0')+1,std::string::npos);
|
||||
tmp.erase(tmp.find_last_not_of('.')+1,std::string::npos);
|
||||
return tmp;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
void nasal_ref::print()
|
||||
|
|
|
@ -116,15 +116,15 @@ var curve4=func()
|
|||
}
|
||||
var curve5=func(){
|
||||
for(var i=0;i<=9;i+=1)
|
||||
println(i,"\e["~split(".",str(i))[0]~"mh \e[0m");
|
||||
println(i,"\e["~i~"mh \e[0m");
|
||||
for(var i=30;i<=37;i+=1)
|
||||
println(i,"\e["~split(".",str(i))[0]~"mh \e[0m");
|
||||
println(i,"\e["~i~"mh \e[0m");
|
||||
for(var i=40;i<=47;i+=1)
|
||||
println(i,"\e["~split(".",str(i))[0]~"mh \e[0m");
|
||||
println(i,"\e["~i~"mh \e[0m");
|
||||
for(var i=90;i<=97;i+=1)
|
||||
println(i,"\e["~split(".",str(i))[0]~"mh \e[0m");
|
||||
println(i,"\e["~i~"mh \e[0m");
|
||||
for(var i=100;i<=107;i+=1)
|
||||
println(i,"\e["~split(".",str(i))[0]~"mh \e[0m");
|
||||
println(i,"\e["~i~"mh \e[0m");
|
||||
}
|
||||
var curve6=func(){
|
||||
var shadow=["m░\e[0m","m▒\e[0m","m▓\e[0m","m█\e[0m","m▀\e[0m","m▄\e[0m","m▐\e[0m","m▌\e[0m"];
|
||||
|
|
Loading…
Reference in New Issue