有可能得到一个 "精确 "的数值吗? - 页 6

 
abolk:

为了解决这个问题,0.09*5必须是=0.45,而不是=0.44999999999999999

如果它不存在,这个问题就无法解决。

0.09*5=0.45 )

你不知道如何计算吗?)

 
sanyooooook:

0.09*5=0.45 )

你不知道如何计算,是吗?)

这是正确的,我举了一个例子,因为 "它 "在MQL中的工作,所以算作0.44而不是0.45。我对语言不熟悉,但很奇怪,为什么一个大的数字会被剪掉,我的意思是,为什么当它超过极限时,它会被四舍五入,但不会被剪掉。如果 "精确修剪字符串 "的方法,也许就是我上面引用的方法,在MQL中使用,那就太好了。:)
 
WePlexus:
这是正确的,所举的例子是它算0.44而不是0.45,因为 "它 "在MQL中的工作。我对语言的了解并不透彻,但很奇怪,为什么一个大的数字会被剪掉,我的意思是,为什么当数字超过极限时,它会被四舍五入而不是被剪掉。如果 "精确修剪字符串 "的方法,也许就是我上面引用的方法,在MQL中使用,那就太好了。:)
因为在数学中很常见,如果你想去掉小数点后的数字,那么数值就会被四舍五入。
 
sanyooooook:
因为在数学中常见的是,如果要去除小数点后的数字,则对数值进行四舍五入。
miudro
 
谢谢你的帮助。
 
始终
 
WePlexus:
我对语言的了解并不透彻,但很奇怪,为什么一个大的数字会被剪掉,我的意思是,为什么当数字超过极限时,它会被四舍五入而不是被剪掉。如果 "精确修剪字符串 "的方法,也许就是我上面引用的方法,在MQL中使用,那就太好了。:)
这就是我如何理解 "精确修剪 "的作用的。好吧,除了从解决的问题中获得的满足感和合法的自豪感之外:)。
 
四舍五入更容易
 
abolk:

这是发生归一化的最大数字。

如果你再拿一个9,它就会正常化为0.02。

我的职能 是做这个工作。

Normalize ("0.01999999999999999999999999999999", 6)

它输出0.019999。然后你可以将数字转换为正确的类型并对其进行数学运算。

如果你把一个数字传入函数,不加引号,结果将是0.02。

 
WePlexus:

有几种方法可以解决你的问题 -- 每种方法都有其优势和劣势 -- 在获得结果的准确性和速度方面。

使用浮点数工作有其特殊性 -- 你必须了解这些特殊性 -- 了解这些特殊性+对于你的问题 -- 你必须寻找解决方案。