我有这样的案例:
--- FAIL: TestEncryptPrice (0.00s)
Error Trace: price_test.go:19
Error: Not equal:
expected: "WEp8wQAAAABnFd5EkB2k1wJeFcAj-Z_JVOeGzA"
actual: "WEp8wQAAAABnFd5EkB2k1wf7jAcG7gZ9tPUnAA"
--- FAIL: TestDecryptPrice (0.00s)
Error Trace: price_test.go:32
Error: Expected nil, but got: &errors.errorString{s:"sinature mismatch: confSignature = \xbe\xaa\xf6h, sinature = T\xe7\x86\xcc"}
Error Trace: price_test.go:33
Error: Not equal:
expected: 0x64
actual: 0x0
FAIL
string1="some_string"
string2="some_string"
int1="0.87"
int2="${var}"
是其他一些脚本的输出,其格式为$var
或0.994343123
或其他形式(以0开头,最大值为0.3454657
左右)
现在,我不知道bash是如何工作的,但通常字符串0.9972343
永远不会小于或等于0.87
,它们只是不同。
我需要这样的东西(伪代码):
0.9999999
我期望的是if (string1 equals string2 and int1 is less than int2):
do something;
else
do something else.
大于0.87687
(正确吗?我从未擅长数学......)
任何人都可以帮我解决这个问题吗?
提前致谢!
答案 0 :(得分:2)
由于public function get_taxonomy_hierarchy( $taxonomy, $parent = 0 )
{
$taxonomy = is_array( $taxonomy ) ? array_shift( $taxonomy ) : $taxonomy;
$terms = get_terms( $taxonomy, [ 'parent' => $parent ] );
$children = [];
foreach ( $terms as $term ) {
$term->url = get_term_link( $term->term_id);
$term->children = $this->get_taxonomy_hierarchy( $taxonomy, $term->term_id );
array_push($children, $term->term_id);
}
return $children;
}
不处理浮点运算,您可以使用$term->term_id;
比较2个浮点数,并将条件与bash
结合为:
bc -l
答案 1 :(得分:2)
如果值介于0和1之间,则字符串比较将起作用
s1=..; s2=..
v1="0.876"; v2="0.87"
[[ $s1 = $s2 && $v1 > $v2 ]] && echo yes || echo no
答案 2 :(得分:0)
a=0.86
b=0.865
if ((`echo $a '<' $b|bc`)); then echo 'a<b'; fi
(您可以用
替换最后一行if (($(echo $a '<' $b|bc))); then echo 'a<b'; fi
但imho它的可读性较差)