NumberFormatRoundTest.php 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Style;
  3. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  4. use PHPUnit\Framework\TestCase;
  5. class NumberFormatRoundTest extends TestCase
  6. {
  7. public static function testRound(): void
  8. {
  9. // Inconsistent rounding due to letting sprintf do it rather than round.
  10. $spreadsheet = new Spreadsheet();
  11. $sheet = $spreadsheet->getActiveSheet();
  12. $sheet->getStyle('A1:H2')->getNumberFormat()->setFormatCode('0');
  13. $sheet->getStyle('A3:H3')->getNumberFormat()->setFormatCode('0.0');
  14. $sheet->fromArray(
  15. [
  16. [-3.5, -2.5, -1.5, -0.5, 0.5, 1.5, 2.5, 3.5],
  17. [-3.1, -2.9, -1.4, -0.3, 0.7, 1.6, 2.4, 3.7],
  18. [-3.15, -2.85, -1.43, -0.87, 0.72, 1.60, 2.45, 3.75],
  19. ]
  20. );
  21. $expected = [
  22. [-4, -3, -2, -1, 1, 2, 3, 4],
  23. [-3, -3, -1, 0, 1, 2, 2, 4],
  24. [-3.2, -2.9, -1.4, -0.9, 0.7, 1.6, 2.5, 3.8],
  25. ];
  26. self::assertEquals($expected, $sheet->toArray());
  27. $spreadsheet->disconnectWorksheets();
  28. }
  29. }