function myParseInt(str: string): number {
let result = NaN;
for (let i = 0; i < str.length; i++) {
const dec: number = str.charCodeAt(i);
if (dec < 48 || dec > 57) break;
if(isNaN(result)) result = 0; const value = dec - 48;
result = result * 10 + value;
}
return result;
} function myParseFloat(str: string): number {
let result = NaN;
let isDecimal = false; // 小数点
let decimalIndex = 0; // 小数点第几位
const N = 1000;
for (let i = 0; i < str.length; i++) {
const dec: number = str.charCodeAt(i);
const isPoint = dec === 46; if (isPoint && isDecimal) {
// 再次遇到小数点直接返回
break;
} else if (isPoint) {
isDecimal = true;
continue;
} if (dec < 48 || dec > 57) break;
if (isNaN(result)) result = 0; const value = dec - 48; if (!isDecimal) {
result = result * 10 + value;
} else {
decimalIndex++;
result = (result * N + (value / 10 ** decimalIndex) * N) / N;
}
}
return result;
} console.log(myParseInt("12.22")); // 12
console.log(myParseFloat("0.22")); // 0.22

最新文章

  1. javaweb
  2. Mirantis OpenStack 8.0 版本大概性分析
  3. 移动端网站或APP点击后出现闪动或灰色背景(转)
  4. objective c,copy, mutableCopy区别
  5. Java-基础练习1
  6. Unity3D基础学习 加载场景时隐藏物体,点击显示时显示物体
  7. 通过管道进行线程间通信:字节流。字符流的用法及API类似
  8. [置顶] 从引爆点的角度看360随身wifi的发展
  9. CSS3秘笈复习:第六章
  10. [BZOJ4542] [Hnoi2016] 大数 (莫队)
  11. C语言网 蓝桥杯 1117K-进制数
  12. 【bzoj3717】[PA2014]Pakowanie 状压dp
  13. 输出1到n以内的素数
  14. 算法笔记_212:第七届蓝桥杯软件类决赛真题(Java语言B组)
  15. 离线安装 Ambari Hadoop
  16. vim编辑器操作汇总
  17. mybatis慢查询配置
  18. MYSQL5.7:几个简单的show语句演示
  19. scss-@mixin传参
  20. homestead虚拟机,通过npm下载依赖包和解决运行gulp报错问题 yarn出错问题

热门文章

  1. Redis分布式锁升级版RedLock及SpringBoot实现
  2. linux系统权限管理拓展:特殊权限
  3. 7.DHCP的相关命令
  4. 故障-因为MAC地址冲突造成的故障
  5. I - Swap(交换行列是对角线都为1)
  6. Codeforces Round #625 (Div. 2)
  7. Codeforces Round #589 (Div. 2) D. Complete Tripartite(模拟)
  8. Codeforces Round #636 (Div. 3)
  9. &amp;#128218;C#/.NET/.NET Core推荐学习书籍(升职加薪,你值得拥有)
  10. ssh配置方面小实验②