面试OR笔试10——小数转字符串
2017-08-26 12:40
357 查看
1 题目及要求
1.1 题目描述
输入一个小数x,输出保留n位小数的近似值(四舍五入)的字符串。如果末尾有0则删除。如:x = 3.120051,
当n=3时输出3.12,n = 4时输出3.1201
2 解答
2.1 代码
string dtos_m(double x, int n =0){ string res; if(x<0) { res.push_back('-'); x = -x; } int xint = (int) x, base(10); x -= xint; if(!xint) res.push_back('0'); else{ while(base <= xint) base*=10; for( int bk(base/10);bk;bk/=10){ res.push_back('0'+xint/bk); xint = xint % bk; } } base = 1; n = n < 0 ? 0 : n; for (int k1(0); k1 < n; ++k1) { x *= 10; base *= 10; } x+=0.5; xint = (int) x; if(!xint) return res; res.push_back('.'); for( int bk(base/10);xint;bk/=10){ res.push_back('0'+xint/bk); xint = xint % bk; } return res; }
相关文章推荐
- 笔试面试之字符串的全排列
- 【笔试or面试】操作系统的多道编程
- 【程序猿笔试面试解题指南】求字符串中不含重复字符的最长子串
- 笔试or面试忘记or不懂的东西
- 各大计算机公司 笔试及面试 题目 - 专题(字符串 一)
- [互联网面试笔试汇总C/C++-11] 字符串全排列和组合算法
- 【笔试or面试】操作系统的多道编程
- 【笔试or面试】3G门户校园招聘
- 【笔试or面试】美团2014校园招聘
- 面试OR笔试30——单链表环入口节点
- 面试OR笔试12——二叉树转化为链表
- C++面试笔试题目(选2)(字符串,原码反码补码)
- 各大计算机公司 笔试及面试 题目 - 专题(字符串 二)
- 面试OR笔试7——小孩分蛋糕
- 面试OR笔试17——最小排列数
- 【笔试or面试】人人2014校园招聘笔试题(广州站)
- 面试OR笔试26——求1到n之和
- H面试程序(10): 字符串包含问题
- 面试OR笔试13——字母数字排序
- 笔试面试4 字符串的循环移位算法