在使用Lua进行开发的时候,经常会遇到保留n位小数的问题,这里以保留两位小数为例,记录一下需要注意的地方!

在选择处理方案之前,首先要确认需求,搞清楚保留两位小数是指小数点后第三位四舍五入还是从小数点后第三位开始直接舍去!

Case 1

Desc

小数点后第三位四舍五入

Method

string.format("%.2f", num)

Demo

local num1, num2 = 0.1234, -1.5678
print(string.format("%.2f", num1), string.format("%.2f", num2))
-- 0.12    -1.57-- 保留n位小数
function keepDecimalTest(num, n)if type(num) ~= "number" thenreturn num    endn = n or 2return string.format("%." .. n .. "f", num)
end
print(keepDecimalTest(num1, 3), keepDecimalTest(num2, 3))
-- 0.123   -1.568

Tips

string.format返回值的类型为string

Case 2

Desc

从小数点后第三位开始直接舍去

Method

num - num % 0.01

Demo

-- 保留n位小数
function keepDecimalTest(num, n)if type(num) ~= "number" thenreturn num    endn = n or 2if num < 0 thenreturn -(math.abs(num) - math.abs(num) % 0.1 ^ n)elsereturn num - num % 0.1 ^ nend
endlocal num1, num2 = 0.1234, -1.5678
print(keepDecimalTest(num1, 2), keepDecimalTest(num1, 3), keepDecimalTest(num2, 2), keepDecimalTest(num2, 3))
-- 0.12    0.123   -1.56   -1.567

Tips

返回值的类型为number

ps

string.format保留固定位数的小数的取舍规则是四舍五入?no,其实是四舍六入五成双!

Lua中保留两位小数相关推荐

  1. python浮点数保留两位小数_python中保留两位小数怎么表示

    这里有三种方法, round(a,2) '%.2f' % a Decimal('5.000').quantize(Decimal('0.00')) 当需要输出的结果要求有两位小数的时候,字符串形式的: ...

  2. python中保留两位小数的编写程序_Python中保留两位小数的几种方法

    保留两位小数,并做四舍五入处理 方法一: 使用字符串格式化 >>> a = 12.345 >>> print("%.2f" % a) 12.35 ...

  3. python中保留两位小数的编写程序_P081 保留两位小数

    所属年份:2011.3;2011.9 请编一个函数 float fun(double h),该函数的功能是:使变量h中的值保留两位小数,并对第三位进行四舍五入(规定h中的值为正数). 例如,若h 值为 ...

  4. python中保留两位小数的函数_python中round函数保留两位小数的方法

    在我们日常计算的过程中,如果计算出小数,对大量的被保留数据,采用四舍五入这种保留法的误差总和是最小的,能使被保留部分的与实际值差值不超过最后一位数量级的二分之一.四舍五入是一种精确度的保留法,是我们使 ...

  5. Oracle中保留两位小数

    一.ROUND(A/B,2) 函数 ROUND()函数是会将计算结果进行四舍五入的,如果所需要的值需要进行四舍五入,就可以选择这个函数,可以有一个参数,也可以有两个参数:如果有两个param,第一个是 ...

  6. java中保留小数位_Java中保留两位小数的方法

    Java中保留4位小数的方法: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Number ...

  7. python中保留两位小数或者多位小数的方法

    方法1,用round函数 例如: a=12.34567889 round(a,2)=12.35 保留两位小数 round(a,2)=12.35 保留三位小数 方法2, 例如: a=12.3456788 ...

  8. MySql中保留两位小数

    ps:最近项目当中遇到了sql计算保留两位小数问题,在此进行存档一番 Mysql ROUND(X,D) 函数 其中D可不传,默认为0,D可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为 ...

  9. Java中保留两位小数,和kotlin保留两位小数

    Java 使用BigDecimal,保留小数点后两位 public static String format1(double value) {BigDecimal bd = new BigDecima ...

最新文章

  1. ORA-01994 故障一例
  2. understanding OpenGL
  3. 中值滤波器的matlab实现
  4. 射频功率放大器电路设计
  5. 教务管理系统:成绩、课表查询接口设计及抢课、监控功能实现
  6. oracle yum配置本地源,oel 7 本地yum源配置
  7. /usr/lib/python2.7/site-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.8
  8. 记Elsevier上Latex投稿
  9. css动画将图片绕着中心点旋转
  10. 北航c语言程序设计大一期末题库,北航2016C语言|程序设计题七
  11. 剑指高效编程之函数编程
  12. 刷程序对车危害_刷ecu非常后悔,刷程序对车危害有多大
  13. 图片文件损坏如何修复?只需这样操作
  14. 最近工作中遇到的问题和解决
  15. [世界杯] 意大利 VS 捷克 2:0 (据说是本届世界杯最有看头的一场)
  16. 谈谈企业的持续交付流水线设计
  17. poj 1036 Gangsters
  18. 集美大学及集美大学诚毅学院的课表导入小爱同学
  19. MADS100桌面发卡器
  20. 红黑瓷砖--dfs求解

热门文章

  1. MATLAB中求传递函数代码
  2. 建筑师妹岛和世为日本西武设计新型旗舰“球形车头”列车
  3. Redis 数据操作
  4. 文案撰写技巧,感人文案的4大技巧
  5. linux mips汇编指令集,MIPS汇编与指令
  6. registry拉取dockerhub私有镜像
  7. 搜索计算机硬盘的索引恢复,[转载]Chkdsk—磁盘查错修复命令
  8. IDEA导入scala详解
  9. R计算两列数据的相关系数_Python+pandas计算数据相关系数(person、Kendall、spearman)...
  10. SpringBoot通过自定义注解实现模板方法设计模式