精易论坛

标题: 分享一个保留小数点后N位数的源码(自动补零版本) [打印本页]

作者: 两只老虎    时间: 2024-8-19 01:17
标题: 分享一个保留小数点后N位数的源码(自动补零版本)
今天在写某个例子时,需要用到保留小数点后2位的功能,精易模块没有,又懒得打开论坛找,就随便写了一下
分享给有需要的人吧
写得比较粗糙,莫笑。。。


调用了精易模块

  
子程序名返回值类型公开备 注
文本_保留小数点尾数文本型 
参数名类 型参考可空数组备 注
数值双精度小数型
位数整数型
是否四舍五入逻辑型
变量名类 型静态数组备 注
文本文本型 
临时整数型 
小数双精度小数型 
判断 (是否四舍五入)
小数 = 四舍五入 (数值, 位数)
小数 = 数值
文本 = “1”
计次循环首 (位数, )
文本 = 文本 + “0”
计次循环尾 ()
临时 = 小数 × 到数值 (文本)
文本 = 到文本 (临时)
计次循环首 (位数 + 1 - 取文本长度 (文本), )
文本 = “0” + 文本
计次循环尾 ()
返回 (取文本左边 (文本, 取文本长度 (文本) - 位数)“.”取文本右边 (文本, 位数))



作者: 神一样的人猫腻    时间: 2024-8-19 02:40
好东西感谢分享
作者: haoren1212    时间: 2024-8-19 02:44
到文本 (四舍五入 (5 × 0.8695652173913, 2))
到文本 (运算_四舍六入五留双 (5 × 0.8695652173913, 2))

这样不好嘛,非要加上零
作者: 笨来无一悟    时间: 2024-8-19 03:43
  
子程序名返回值类型公开备 注
保留小数双精度小数型 保留几位小数 向下取整 不做四舍五入
参数名类 型参考可空数组备 注
保留参数双精度小数型
保留位数整数型
变量名类 型静态数组备 注
返回结果双精度小数型 
置入代码 ({ 242, 15, 16, 69, 8, 139, 77, 16, 184, 1, 0, 0, 0, 187, 10, 0, 0, 0, 131, 249, 1, 114, 6, 15, 175, 195, 73, 117, 250, 242, 15, 42, 200, 242, 15, 89, 193, 242, 15, 44, 192, 242, 15, 42, 192, 242, 15, 94, 193, 242, 15, 17, 69, 248 })
返回 (返回结果)
' MOVSD XMM0, QWORD PTR SS:[EBP+0X08]
' MOV ECX, DWORD PTR SS:[EBP+0X10]
' MOV EAX, 0X01
' MOV EBX, 0X0A
' CMP ECX, 0X01
' JB LABLE_0X1D
' LABLE_0X17:
' IMUL EAX, EBX
' DEC ECX
' JNE LABLE_0X17
' LABLE_0X1D:
' CVTSI2SD XMM1, EAX
' MULSD XMM0, XMM1
' CVTTSD2SI EAX, XMM0
' CVTSI2SD XMM0, EAX
' DIVSD XMM0, XMM1
' MOVSD QWORD PTR SS:[EBP-0X08], XMM0



作者: renhe2018    时间: 2024-8-19 04:12
还是比较实用的啦
作者: pshq123    时间: 2024-8-19 06:02

作者: 查过    时间: 2024-8-19 07:35
已经顶贴,感谢您对论坛的支持!
作者: 豆豆灰常开心    时间: 2024-8-19 07:40
下个学习一下
作者: year1970    时间: 2024-8-19 07:56
感谢分享
作者: ytbihay    时间: 2024-8-19 08:33
谢谢分享666
作者: kyo9766    时间: 2024-8-19 08:39
学习了不少方法,感谢分享
作者: 一指温柔    时间: 2024-8-19 08:48
感谢分享
作者: wuqingg    时间: 2024-8-19 09:17
啥?精易模块没有?

Snipaste_2024-08-19_09-16-05.png (41.04 KB, 下载次数: 50)

Snipaste_2024-08-19_09-16-05.png

作者: csdyic    时间: 2024-8-19 09:23
感谢分享,支持开源!!!

作者: wlsk888    时间: 2024-8-19 10:08
谢谢分享,学习学习
作者: qq2442376977    时间: 2024-8-19 11:13
谢谢分享
作者: ctry78985    时间: 2024-8-19 11:49
感谢分享
作者: 龙傲天f    时间: 2024-8-19 13:12
感谢分享,很给力!
作者: fastdao    时间: 2024-8-19 16:27
感谢楼主分享,支持一下~~
作者: wuqingg    时间: 2024-8-19 16:38
亲,这个呢?

Snipaste_2024-08-19_16-36-13.png (11.69 KB, 下载次数: 50)

Snipaste_2024-08-19_16-36-13.png

作者: 卡卡1111    时间: 2024-8-19 19:51
感谢分享,很给力!~
作者: ttggnn    时间: 2024-8-19 21:01

感谢分享
作者: 天线宝宝520    时间: 2024-8-19 22:14
        此处应该有鼓励~
作者: kiss0459    时间: 2024-8-20 00:02
太复杂了,一句格式化文本命令你应该多了解一下。
作者: bianyuan456    时间: 2024-8-20 01:24
已经顶贴,感谢您对论坛的支持!
作者: renhe2018    时间: 2024-8-20 04:18
再看看,发现真的挺实用的。
作者: 查过    时间: 2024-8-20 07:47
全都是大佬~
作者: 豆豆灰常开心    时间: 2024-8-20 07:52
已经顶贴,感谢您对论坛的支持!
作者: 一指温柔    时间: 2024-8-20 09:00
感谢分享
作者: 查过    时间: 2024-8-21 07:58
下个学习一下
作者: 豆豆灰常开心    时间: 2024-8-21 08:03
感谢楼主分享!
作者: please    时间: 2024-8-21 09:37
感谢分享,支持开源!!!
作者: 396384183    时间: 2024-8-21 10:05
感谢分享 赞一个 !
作者: jzc123    时间: 2024-8-22 08:47
777777779999999999999999
作者: please    时间: 2024-8-22 09:39
感谢分享,支持开源!!!
作者: 何浩文    时间: 2024-8-22 16:20
感谢分享,很给力!~
作者: 胖子葛格    时间: 2024-8-24 13:51
感谢大神分享~!
作者: loveql26    时间: 2024-8-24 19:06
感谢分享,很给力!~
作者: ldnavy    时间: 2024-10-1 01:58
楼主的会转换错误,当值是1.1,2.1,3.1,4.1转换后会变成1.09,2.09,3.09.4.09.大于5.1时就正确返回
作者: lm88818    时间: 2024-11-11 09:59
        感谢分享,很给力!~
作者: 熊不熊    时间: 2024-12-4 17:20
感谢分享,很给力!~
作者: djdjdj69    时间: 2025-7-4 05:21
  
子程序名返回值类型公开备 注
文本_保留小数点尾数文本型 固定只取小数后两位,不够补零
参数名类 型参考可空数组备 注
数值文本文本型
变量名类 型静态数组备 注
小数点位置整数型 
长度a整数型 
小数点位置 = 寻找文本 (数值文本, “.”, , )
长度a = 取文本长度 (数值文本)
如果真 (小数点位置 = -1)
返回 (数值文本 + “.”“00”)

如果真 (长度a - 小数点位置 = 1)
返回 (数值文本 + “0”)

如果真 (长度a - 小数点位置 = 2)
返回 (数值文本)

如果真 (长度a - 小数点位置 = 0)
返回 (文本_保留小数点尾数 (子文本替换 (数值文本, “.”, “”, , , )))

如果真 (长度a - 小数点位置 > 2)
返回 (文本_保留小数点尾数 (到文本 (四舍五入 (到数值 (数值文本), 2))))

返回 (数值文本)
[JavaScript] 纯文本查看 复制代码
.版本 2

.子程序 文本_保留小数点尾数, 文本型, , 固定只取小数后两位,不够补零
.参数 数值文本, 文本型
.局部变量 小数点位置, 整数型
.局部变量 长度a, 整数型

小数点位置 = 寻找文本 (数值文本, “.”, , 假)
长度a = 取文本长度 (数值文本)

.如果真 (小数点位置 = -1)
    返回 (数值文本 + “.” + “00”)
.如果真结束

.如果真 (长度a - 小数点位置 = 1)
    返回 (数值文本 + “0”)
.如果真结束

.如果真 (长度a - 小数点位置 = 2)
    返回 (数值文本)
.如果真结束

.如果真 (长度a - 小数点位置 = 0)
    返回 (文本_保留小数点尾数 (子文本替换 (数值文本, “.”, “”, , , 真)))
.如果真结束


.如果真 (长度a - 小数点位置 > 2)
    返回 (文本_保留小数点尾数 (到文本 (四舍五入 (到数值 (数值文本), 2))))
.如果真结束

返回 (数值文本)

作者: xkAnd    时间: 2025-7-4 06:09
哈也写这种小自己写这种小函数,省得翻论坛了呢!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4