开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 792|回复: 14
收起左侧

[已解决] 小数保留2位小数

 关闭 [复制链接]
结帖率:60% (3/5)
发表于 2023-11-23 08:38:22 | 显示全部楼层 |阅读模式   重庆市重庆市
100精币

10.2548  返回10.25

10.2568  返回10.25   10.26 都可以 无需很高精度 只需要保留两位

10.2       返回10.20   保留两位

10          返回10.00   保留两位

应用场景的小数值范围是在0-90以内 不会超越90

数值到格式文本 (到数值 (数), 2, 假) 这样效率不算高  场景有点要求速度








补充内容 (2023-11-23 08:42):
我暂时能想到的办法是把浮点乘以100然后转为整数型 然后使用取模运算分离出整数部分和小数部分 但是易语言运算有点糟糕啊

最佳答案

查看完整内容

懒得伤脑筋 没用纯汇编 快速文本对象的效率也挺高的 里面的代码别乱改哈 缓存=0是有意义的 拉屎占茅坑的意思 [e=4].版本 2 .支持库 commobj .子程序 保留小数, 文本型, , 保留几位小数 向下取整 不做四舍五入 .参数 保留参数, 双精度小数型 .参数 保留位数, 整数型 .局部变量 缓存, 双精度小数型 .局部变量 结果, 快速文本对象 缓存 = 0 置入代码 ({ 54, 242, 15, 16, 69, 8, 54, 139, 77, 16, 184, 1, 0, 0, 0, 187, ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (2/2)

签到天数: 26 天

发表于 2023-11-23 08:38:23 | 显示全部楼层   贵州省毕节市
懒得伤脑筋 没用纯汇编 快速文本对象的效率也挺高的 里面的代码别乱改哈 缓存=0是有意义的 拉屎占茅坑的意思

  
子程序名返回值类型公开备 注
保留小数文本型 保留几位小数 向下取整 不做四舍五入
参数名类 型参考可空数组备 注
保留参数双精度小数型
保留位数整数型
变量名类 型静态数组备 注
缓存双精度小数型 
结果快速文本对象 
缓存 = 0
置入代码 ({ 54, 242, 15, 16, 69, 8, 54, 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, 54, 242, 15, 17, 69, 248 })
结果.置文本 (缓存)
结果.插入 (-保留位数, “.”)
返回 (结果.取文本 (, ))


i支持库列表   支持库注释   
commobj通用对象支持库



补充内容 (2023-11-23 09:38):
晕 测试下来0.00几 不正确...

补充内容 (2023-11-23 10:07):
小于1的你暂时特判一下 有空再优化优化...

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:97% (97/100)

签到天数: 25 天

发表于 2023-11-23 08:43:37 | 显示全部楼层   江西省吉安市
  
调试输出 (到文本 (四舍五入 (10.2548, 2)))

评分

参与人数 1好评 +1 收起 理由
Esma001 + 1 奉上小小红包希望笑纳

查看全部评分

回复

使用道具 举报

结帖率:97% (97/100)

签到天数: 25 天

发表于 2023-11-23 08:44:12 | 显示全部楼层   江西省吉安市
  
调试输出 (数值到格式文本 (10.2548, 2, ))

评分

参与人数 1好评 +1 收起 理由
Esma001 + 1 奉上小小红包希望笑纳

查看全部评分

回复

使用道具 举报

结帖率:60% (3/5)

签到天数: 27 天

 楼主| 发表于 2023-11-23 08:46:14 | 显示全部楼层   重庆市重庆市
悟空科技 发表于 2023-11-23 08:44
调试输出 (数值到格式文本 (10.2548, 2, 假))

数值到格式文本 (到数值 (数), 2, 假) 和四舍五入都有点慢 数据量有点大 想着优化一下还有其他方法吗
回复

使用道具 举报

结帖率:98% (61/62)

签到天数: 6 天

发表于 2023-11-23 08:47:51 | 显示全部楼层   山东省济南市
Esma001 发表于 2023-11-23 08:46
数值到格式文本 (到数值 (数), 2, 假) 和四舍五入都有点慢 数据量有点大 想着优化一下还有其他方法吗 ...
  
子程序名返回值类型公开备 注
子程序1文本型 
参数名类 型参考可空数组备 注
文本文本型
文本 = 取文本左边 (文本, 5)
判断 (取文本长度 (文本) = 2)
文本 = 文本 + “.00”
判断 (取文本长度 (文本) = 4)
文本 = 文本 + “0”


返回 (文本)

回复

使用道具 举报

结帖率:60% (3/5)

签到天数: 27 天

 楼主| 发表于 2023-11-23 08:54:04 | 显示全部楼层   重庆市重庆市
chaoup 发表于 2023-11-23 08:47
[e=0].版本 2

.子程序 子程序1, 文本型

你这个还要慢~ 取文本长度和左边 申请3次文本内存~
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 26 天

发表于 2023-11-23 08:58:45 | 显示全部楼层   贵州省毕节市
比常规的写法快10倍
  
子程序名返回值类型公开备 注
保留小数双精度小数型 保留几位小数 向下取整 不做四舍五入
参数名类 型参考可空数组备 注
保留参数双精度小数型
保留位数整数型
变量名类 型静态数组备 注
返回结果双精度小数型 
置入代码 ({ 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
返回 (返回结果)

点评

有点不对劲 你是10也10.00 这得文本型了   贵州省毕节市  发表于 2023-11-23 08:59
回复

使用道具 举报

结帖率:60% (3/5)

签到天数: 27 天

 楼主| 发表于 2023-11-23 09:01:53 | 显示全部楼层   重庆市重庆市
笨来无一悟 发表于 2023-11-23 08:58
比常规的写法快10倍
[e=4].版本 2


num = 8.5085
调试输出 (保留小数 (num, 2))  返回8.5

回复

使用道具 举报

结帖率:60% (3/5)

签到天数: 27 天

 楼主| 发表于 2023-11-23 09:03:55 | 显示全部楼层   重庆市重庆市
Esma001 发表于 2023-11-23 09:01
num = 8.5085
调试输出 (保留小数 (num, 2))  返回8.5

忘记了返回是小数 不是文本 是正常的舍去0 有点尴尬啊

点评

这得文本才能实现 否则10.00显示出来还是10   贵州省毕节市  发表于 2023-11-23 09:06
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表