我将版本号放在double
变量中。
例如,我想这样显示
(Internal) (show )
a 1.10000 -> 1.1
b 1.20000 -> 1.2
c 1.14000 -> 1.14
版本控制不是真正的两倍有点问题。
这就像是两个.
组合的int数
round($num,1)
在情况c中不起作用。
round($num,2)
表示情况a,情况b为1.10,1.20。
你知道什么好方法吗?
答案 0 :(得分:1)
["player23", "8", "chelseaId", "4"]
只需从右侧修剪所有尾随rtrim($num, '0.');
和0
。
.
(我添加了大小写$numbers = ['a' => '1.10000', 'b' => '1.20000', 'c' => '1.14000', 'd' => '1.0000'];
foreach($numbers as $key => $num) {
echo $key . ': ' . rtrim($num, '0.') . '<br>';
}
// output:
// a: 1.1
// b: 1.2
// c: 1.14
// d: 1
,以显示它也可以处理其他答案的注释中提到的这种“边缘情况”。)
答案 1 :(得分:0)
理想情况下,您不会将版本号存储为数字,因为它们不是真正的数字-除比较之外,您不对它们进行数学运算。如果可能的话,您可能希望将它们存储为字符串(遵循Semantic Versioning是个好主意,但是您当前的方法也适用于字符串)并使用version_compare
进行比较。
也就是说,如果您不能再使用基于字符串的版本控制系统,则仍然可以将double视为字符串,而只是...切零:
preg_replace('/0+$/', '', $num)
会给您您想要的东西。