- tostring var , format(%100.0g) replace
例如:xxx cannot be converted reversibly; no replace
如果强行转换,则会出现指数形式的字符,如:1.35e+17,很显然这是不行的!本代码的关键之处在于format的设定,%后的数字,应该尽可能的大,只有这样才能保证可以转换,并且转换后不会有形如1.35e+17的记录出现。
全部思路均在本文代码中呈现!欢迎指正!
- *[思路]
- *=产生实验数据,后面操作会破坏之,请酌情重新运行!=
- cap drop var
- input var
- 1234567890123
- 12345
- 8888888
- 123456789012345678
- 12345678 //8位是是否指数形式的临界值
- 123456789
- end
- label var var "实验变量"
- ed
- *=常规思路=
- tostring var , replace
- * Error Message:var cannot be converted reversibly; no replace
- * 那怎么办捏?哦,想到了,于是、、、
- *=错误方法=
- tostring var , replace force // force is ×
- ed // 看到了吧,这肯定不是你我想要的结果!
- *=大神之法=
- gen var_ref=var // 待会儿便于核查
- label var var_ref "参照"
- **************************************
- tostring var , format(%100.0g) replace //%100? 好吓人哦、、、别急!go on...
- **************************************
- ed // look! 兴奋吧、过瘾吧!
- des /*look! var str18 %18s
- 并没有和100有什么关系,所以不用担心设定100太大!
- #* 设定100甚至更大,可以非常以及可定的保证了-tostring-的成功,
- 更重要的是:完全不会有可能再出现 1.35e+17 之类的怪物了哦~~~*/