Mar*_*evi 0 c decimal floating-accuracy
我有一个程序打印出一个非常小的值的矩阵.我的矩阵的一个例子是
0.00000000000000004 0.12300000000000000
0.00000000011111114 0.00000000000038544
Run Code Online (Sandbox Code Playgroud)
我想要做的是比较每个值,zero并接受它zero具有特定的准确性,即小数点后9位.换句话说,如果一个数字zeros的第一个十进制值为9 ,我想将其视为a zero,否则不是.
我搜索了很多但却一无所获.有任何想法吗?
正如我在我的评论指出的那样,你可以简单地比较浮动f通过-1e-9 < f < 1e-9.
你需要正面和负面边界,以确保它适用于正数和负数.你使用1e-9而不是1e-10因为如果一个数字小于1e-9一个8位小数0的数字,那么它有9位小数或更多零.
请注意,由于1e-9从十进制到二进制的浮点舍入,您可能会看到一些舍入错误.