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.
|
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__
|
## __Abstract Syntax Tree__
|
||||||
|
|
||||||
|
|
|
@ -399,8 +399,11 @@ nasal_ref builtin_str(nasal_ref* local,nasal_gc& gc)
|
||||||
nasal_ref val=local[1];
|
nasal_ref val=local[1];
|
||||||
if(val.type!=vm_num)
|
if(val.type!=vm_num)
|
||||||
return builtin_err("str","\"number\" must be number");
|
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);
|
nasal_ref ret=gc.alloc(vm_str);
|
||||||
*ret.str()=std::to_string(val.num());
|
*ret.str()=tmp;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
nasal_ref builtin_size(nasal_ref* local,nasal_gc& gc)
|
nasal_ref builtin_size(nasal_ref* local,nasal_gc& gc)
|
||||||
|
|
|
@ -312,7 +312,12 @@ std::string nasal_ref::to_string()
|
||||||
if(type==vm_str)
|
if(type==vm_str)
|
||||||
return *str();
|
return *str();
|
||||||
else if(type==vm_num)
|
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 "";
|
return "";
|
||||||
}
|
}
|
||||||
void nasal_ref::print()
|
void nasal_ref::print()
|
||||||
|
|
|
@ -116,15 +116,15 @@ var curve4=func()
|
||||||
}
|
}
|
||||||
var curve5=func(){
|
var curve5=func(){
|
||||||
for(var i=0;i<=9;i+=1)
|
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)
|
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)
|
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)
|
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)
|
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 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"];
|
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