iiylliu?

如有一个函数其可接受一个long double參數,并将參数转换为字符串结果字符串应保留两位小数,比如浮点值123.45678应该生成“123.45”这种字符串。表面上看来 这是一个意义不大的编程問题然而。假设真要在实际中派上用场函数应设计为具有一定弹性,以同意调用者指定小数位数另外,函数也应该可以处理各种异瑺

经验之谈:①不管何时须要格式化一个数值都应该先转换为一个字符串,这样可保证每位数刚好占领一个字符②须要转化为字符串時候,能够考虑使用库函数 使用库函数将long double值转化为一个string应该非常easy可是须要注意以下几个问题:


由于stringstream对象默认精度为6。(这里须要强调一個精度老式指的是小数位数,新式应该指的是所有位数)这就会有出现一个问题:假设很大的数,比如它就会转化为科学计数法,這显然不是我们须要的所以我们使用库函数和转换之前,必须先把默认的精度设为最大
在STL算法中使用一个常量来代表“数值未找到”芓符串中是string::npos
由于我们设定了小数点最大位数decplacea。所以我们要检查小数点位数假设小于它。那么直接返回字符串否则小数部分多余的要被截去。 //推断是否有小数点且还有decpalces位

参考资料

 

随机推荐