Perl - 将数字转换为2个小数

时间:2018-03-21 17:43:20

标签: perl number-formatting

我想将数字转换为小数。我一直在用:

sprintf("%02d", $price / 12);

有时只有$price是一个完整的数字,所以6取代06而不是class App extends React.Component { constructor(props) { super(props); this.state = { sidebarOpen: false } this.onSetSidebarOpen = this.onSetSidebarOpen.bind(this); } onSetSidebarOpen: function(open) { this.setState({sidebarOpen: open}); } render: function() { var sidebarContent = <b>Sidebar content</b>; return ( <Sidebar sidebar={sidebarContent} open={this.state.sidebarOpen} onSetOpen={this.onSetSidebarOpen}> <b>Main content</b> </Sidebar> ); } }; 。我如何确保它转换为2位小数,但也不会在整数之前加零?

2 个答案:

答案 0 :(得分:1)

sprintf('%.2f', $price/12) =~ s/\.00\z//r       # 5.14+

do { my $s = sprintf('%.2f', $price/12); $s =~ s/\.00\z//; $s }

对于上述两种情况,

  • 如果$price/12 == 5.999,则评估为6
  • 如果$price/12 == 6,则评估为6
  • 如果$price/12 == 6.001,则评估为6
  • 如果$price/12 == 6.2,则评估为6.20
  • 如果$price/12 == 6.22,则评估为6.22
  • 如果$price/12 == 6.222,则评估为6.22
  • 如果$price/12 == 6.229,则评估为6.23

答案 1 :(得分:0)

int( $price / 6 + 0.5 );

根据需要,Perl会自动在字符串和数字之间进行更改。