|
338 | 338 | <span id="333">333</span>
|
339 | 339 | <span id="334">334</span>
|
340 | 340 | <span id="335">335</span>
|
| 341 | +<span id="336">336</span> |
| 342 | +<span id="337">337</span> |
| 343 | +<span id="338">338</span> |
| 344 | +<span id="339">339</span> |
| 345 | +<span id="340">340</span> |
| 346 | +<span id="341">341</span> |
| 347 | +<span id="342">342</span> |
| 348 | +<span id="343">343</span> |
| 349 | +<span id="344">344</span> |
341 | 350 | </pre><pre class="rust"><code><span class="kw">use</span> <span class="ident">uucore::display::Quotable</span>;
|
342 | 351 |
|
343 | 352 | <span class="kw">use</span> <span class="ident"><span class="kw">crate</span>::options</span>::{<span class="ident">NumfmtOptions</span>, <span class="ident">RoundMethod</span>, <span class="ident">TransformOptions</span>};
|
|
485 | 494 | <span class="kw">let</span> (<span class="ident">i</span>, <span class="ident">suffix</span>) <span class="op">=</span> <span class="ident">parse_suffix</span>(<span class="ident">s</span>)<span class="question-mark">?</span>;
|
486 | 495 | <span class="kw">let</span> <span class="ident">i</span> <span class="op">=</span> <span class="ident">i</span> <span class="op">*</span> (<span class="ident">opts</span>.<span class="ident">from_unit</span> <span class="kw">as</span> <span class="ident">f64</span>);
|
487 | 496 |
|
488 |
| - <span class="ident">remove_suffix</span>(<span class="ident">i</span>, <span class="ident">suffix</span>, <span class="kw-2">&</span><span class="ident">opts</span>.<span class="ident">from</span>).<span class="ident">map</span>(<span class="op">|</span><span class="ident">n</span><span class="op">|</span> <span class="kw">if</span> <span class="ident">n</span> <span class="op"><</span> <span class="number">0.0</span> { <span class="op">-</span><span class="ident">n</span>.<span class="ident">abs</span>().<span class="ident">ceil</span>() } <span class="kw">else</span> { <span class="ident">n</span>.<span class="ident">ceil</span>() }) |
| 497 | + <span class="ident">remove_suffix</span>(<span class="ident">i</span>, <span class="ident">suffix</span>, <span class="kw-2">&</span><span class="ident">opts</span>.<span class="ident">from</span>).<span class="ident">map</span>(<span class="op">|</span><span class="ident">n</span><span class="op">|</span> { |
| 498 | + <span class="comment">// GNU numfmt doesn't round values if no --from argument is provided by the user</span> |
| 499 | + <span class="kw">if</span> <span class="ident">opts</span>.<span class="ident">from</span> <span class="op">==</span> <span class="ident">Unit::None</span> { |
| 500 | + <span class="ident">n</span> |
| 501 | + } <span class="kw">else</span> <span class="kw">if</span> <span class="ident">n</span> <span class="op"><</span> <span class="number">0.0</span> { |
| 502 | + <span class="op">-</span><span class="ident">n</span>.<span class="ident">abs</span>().<span class="ident">ceil</span>() |
| 503 | + } <span class="kw">else</span> { |
| 504 | + <span class="ident">n</span>.<span class="ident">ceil</span>() |
| 505 | + } |
| 506 | + }) |
489 | 507 | }
|
490 | 508 |
|
491 | 509 | <span class="doccomment">/// Divide numerator by denominator, with rounding.</span>
|
|
0 commit comments