当前位置: 首页 > news >正文

Lua实战之以非科学记数法输出小数

Description

现有小数 n,我们知道,当 n < 0.0001 时会以科学记数法输出,例如:

local n = 0.0000999
print(n)  -- 9.99e-005

由于不少人对科学记数法并不熟悉,所以还是希望以非科学记数法输出,如何实现?

Implemention

function printDecimal(n)
    if type(n) ~= "number" then
        return tostring(n)
    end
    if n >= 0.0001 then
        return tostring(n)
    end
    local rStr, sPos = string.reverse(string.format("%.16f", n)), 0
    for s in string.gmatch(rStr, ".") do
        sPos = sPos + 1
        if tonumber(s) > 0 then
            break
        end
    end
    local fStr = string.reverse(string.sub(rStr, sPos))
    return fStr
end

print(0.0001)  -- 0.0001
print(0.00001)  -- 1e-005
print(0.0000999)  -- 9.99e-005
print(0.000000123456)  -- 1.23456e-007

print(printDecimal(0.0001))  -- 0.0001
print(printDecimal(0.00001))  -- 0.00001
print(printDecimal(0.0000999))  -- 0.0000999
print(printDecimal(0.000000123456))  -- 0.000000123456

相关文章:

  • SVN服务器的搭建与使用
  • 犹太人常说的理财故事
  • SVN设置强制注释才能提交
  • 35岁前成功的12条黄金法则
  • SVN比较两个文件差异
  • 李嘉诚传给年青人的人生忠告
  • 2021-1024程序员节
  • 成就富翁:赚钱八大定律
  • 安卓系统管理软件_【安卓软件】玩机必备综合型系统管理工具
  • 职业营销人的成长揭秘
  • 为什么Android项目mainactivity中有一个变量R_【Android 原创】日常破解从XCTF的app3题目简单了解安卓备份文件以及sqliteCipher加密数据库...
  • 备份文件的BAT脚本
  • unity animator 动画 结束后保持位移_使用 IKINEMA Orion 在 Unity 中进行全身动作捕捉...
  • 中国IT人士的成功之道
  • 操作系统锁的实现方法有哪几种_深入理解多线程(四)——Moniter的实现原理...
  • Apache Pulsar 2.1 重磅发布
  • CentOS 7 防火墙操作
  • Django 博客开发教程 16 - 统计文章阅读量
  • ECMAScript6(0):ES6简明参考手册
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java读取Properties文件的六种方法
  • jquery cookie
  • Linux gpio口使用方法
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • React 快速上手 - 07 前端路由 react-router
  • Redis学习笔记 - pipline(流水线、管道)
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Vue 重置组件到初始状态
  • 闭包--闭包之tab栏切换(四)
  • 从输入URL到页面加载发生了什么
  • 关于extract.autodesk.io的一些说明
  • 回顾2016
  • 如何选择开源的机器学习框架?
  • 小试R空间处理新库sf
  • 优秀架构师必须掌握的架构思维
  • raise 与 raise ... from 的区别
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $.ajax()参数及用法
  • (Python) SOAP Web Service (HTTP POST)
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)计算机毕业设计大学生兼职系统
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)jQuery 基础
  • (转)甲方乙方——赵民谈找工作
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .chm格式文件如何阅读
  • .net MySql
  • .NET 发展历程
  • .NET和.COM和.CN域名区别
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • /boot 内存空间不够