Arrays 数组哈希中缺少零

Arrays 数组哈希中缺少零,arrays,perl,hash,Arrays,Perl,Hash,有人知道为什么“1.30”中的0没有出现吗 代码: 输出: 1.3 1.23 如果您确定版本号有两位小数,则可以执行以下操作: foreach (@{$mb_version{'TXA4'}}) { printf "%.2f\n", $_; } 否则,您可以使用字符串(而不是浮点数)来存储版本号。同样的方法,您也可以尝试此操作 foreach (@{$mb_version{'TXA4'}}) { sprintf("%02f", $_); } 我会避免那些建议显式将格式设置为小数点后两

有人知道为什么“1.30”中的0没有出现吗

代码:

输出:

1.3
1.23

如果您确定版本号有两位小数,则可以执行以下操作:

foreach (@{$mb_version{'TXA4'}}) {
  printf "%.2f\n", $_;
}

否则,您可以使用字符串(而不是浮点数)来存储版本号。

同样的方法,您也可以尝试此操作

foreach (@{$mb_version{'TXA4'}}) {
  sprintf("%02f", $_);
}

我会避免那些建议显式将格式设置为小数点后两位的答案,而更喜欢将版本标识符存储为字符串,这才是它们真正想要的。例如

our %mb_version = (
    'TXA4' => [qw/1.30, 1.23/],
);

因为这是一个数字。尾随的零是不相关的,并且无论如何都隐含在那里。这就像说“我的美元值1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000。我也意识到了字符串的答案。我只是用引号将元素包装在数组的散列中。很好的替代方案。
our %mb_version = (
    'TXA4' => [qw/1.30, 1.23/],
);