shuimiao 发表于 2024-9-29 22:16:45

小数计算精度的重大bug | 附:15位高精度的小数到文本()

本帖最后由 shuimiao 于 2024-9-30 17:32 编辑



一、0.01 / 10000.0 * 200.0 == 0


X大说这是吴总自己对表达式做了改变,导致丢失精度,只要把计算数都改成变量就没事,但是这说不过去了吧,老老实实翻译人家的表达式不好吗,徒增麻烦


二、变量a(值是0.01) / 变量b(值是10000.0) ==变量c(值是0.000001)

这时如果你将变量c到文本,竟然转换为"0"。当你想计算用户给出文本中出现的多联计算表达式时,比如"0.01 / 10000.0 * 200.0",那必然就会分成两个步骤,第一步"0.01 / 10000.0"计算出结果转换到文本就是"0",然后第二步 "0 * 200.0"还是0。


请求吴总修复bug
static/image/hrline/4.gif

第二点问题,取格式文本()方法会出现固定小数位6精度,不足位自动补0的问题,不行。所以我问ai写了个小数到文本的方法,好用,特来贡献。
**** Hidden Message *****

yhobo 发表于 2024-9-30 00:30:20

好像大数的四舍五入还有个会去掉负数符号的BUG,当时没细究,只加了个-号了事

小虾米006 发表于 2024-9-30 08:24:30

支持!

宇杰 发表于 2024-9-30 16:04:09

当时没细究

2767944492 发表于 2024-9-30 17:25:53

htpmcj 发表于 2024-9-30 18:27:19

看看

Xelloss0618 发表于 2024-9-30 20:52:02

用自带的「数值到格式文本]也行

shuimiao 发表于 2024-9-30 21:33:12

Xelloss0618 发表于 2024-9-30 20:52
用自带的「数值到格式文本]也行

没用的,数值到格式文本 (0.00000001)的结果是1E-08,而不是"0.00000001",还是我用ai写的方法好使

Xelloss0618 发表于 2024-9-30 22:05:45

shuimiao 发表于 2024-9-30 21:33
没用的,数值到格式文本 (0.00000001)的结果是1E-08,而不是"0.00000001",还是我用ai写的方法好使 ...

嗯,你顶楼的代码跟 取格式文本 ("%.15f", 0.00000001) 也差别不大,就是后面多写一个删除尾部多余的0

shuimiao 发表于 2024-10-1 14:01:37

Xelloss0618 发表于 2024-9-30 22:05
嗯,你顶楼的代码跟 取格式文本 ("%.15f", 0.00000001) 也差别不大,就是后面多写一个删除尾部多余的0 ...

如果取格式文本()这个,然后再火山代码去零,跟我给的代码,不知道哪个效率更高
页: [1] 2 3 4
查看完整版本: 小数计算精度的重大bug | 附:15位高精度的小数到文本()