4], '0'], [1.1, ['decimals' => 4], '1.1'], [1.0001, ['decimals' => 4], '1.0001'], [1.00004, ['decimals' => 4], '1'], [1.00005, ['decimals' => 4], '1.0001'], [0.000012344, ['decimals' => 4], '0.00001234'], [0.000012345, ['decimals' => 4], '0.00001235'], [100.00004, ['decimals' => 4], '100'], [100.00005, ['decimals' => 4], '100.0001'], [1E-14, ['decimals' => 4], '0.00000000000001'], [1E-15, ['decimals' => 4], '1E-15'], [1.0004E-14, ['decimals' => 4], '1.0004E-14'], [1.0005E-14, ['decimals' => 4], '1.0005E-14'], [1E+6, ['precision' => 4], '1000000'], [1E+7, ['precision' => 4], '1E+7'], [1.4E+100, ['precision' => 4], '1E+100'], [1.5E+100, ['precision' => 4], '2E+100'], [1.004E+100, ['precision' => 4, 'decimals' => 2], '1E+100'], [1.005E+100, ['precision' => 4, 'decimals' => 2], '1.01E+100'], [0.129, ['precision' => 4, 'decimals' => 2], '0.13'], [0.0129, ['precision' => 4, 'decimals' => 2], '1.29E-2'], [0.00129, ['precision' => 4, 'decimals' => 2], '1.29E-3'], [0.000129, ['precision' => 4, 'decimals' => 2], '1.29E-4'], [0.129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true], '0.13'], [0.0129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true], '1.29E-2'], [0.00129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true], '1.29E-3'], [0.000129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true], '1.29E-4'], [0, ['decimals' => 4, 'decimals_exact' => true], '0'], [0.0004, ['decimals' => 4, 'decimals_exact' => true], '0.0004'], [0.0005, ['decimals' => 4, 'decimals_exact' => true], '0.0005'], [0.00004, ['decimals' => 4, 'decimals_exact' => true], '4.0000E-5'], [0.00005, ['decimals' => 4, 'decimals_exact' => true], '5.0000E-5'], [100.0004, ['decimals' => 4, 'decimals_exact' => true], '100.0004'], [100.0005, ['decimals' => 4, 'decimals_exact' => true], '100.0005'], [100.00004, ['decimals' => 4, 'decimals_exact' => true], '100.0000'], [100.00005, ['decimals' => 4, 'decimals_exact' => true], '100.0001'], [0, ['decimals' => 4, 'decimals_exact' => true, 'zero_as_zero' => false], '0.0000'], [1, ['decimals' => 4, 'decimals_exact' => true, 'zero_as_zero' => false], '1.0000'], [0, ['small_scientific' => false], '0'], [1, ['small_scientific' => false], '1'], [9.4, ['small_scientific' => false], '9'], [9.5, ['small_scientific' => false], '10'], [9.99999999999999E+14, ['small_scientific' => false], '999999999999999'], [9.99999999999999E+15, ['small_scientific' => false], '1E+16'], [0, ['decimals' => 4, 'small_scientific' => false], '0'], [1.1, ['decimals' => 4, 'small_scientific' => false], '1.1'], [1.0001, ['decimals' => 4, 'small_scientific' => false], '1.0001'], [1.00004, ['decimals' => 4, 'small_scientific' => false], '1'], [1.00005, ['decimals' => 4, 'small_scientific' => false], '1.0001'], [0.000012344, ['decimals' => 4, 'small_scientific' => false], '0.00001234'], [0.000012345, ['decimals' => 4, 'small_scientific' => false], '0.00001235'], [100.00004, ['decimals' => 4, 'small_scientific' => false], '100'], [100.00005, ['decimals' => 4, 'small_scientific' => false], '100.0001'], [1E-14, ['decimals' => 4, 'small_scientific' => false], '0.00000000000001'], [1E-15, ['decimals' => 4, 'small_scientific' => false], '0.000000000000001'], [1.0004E-14, ['decimals' => 4, 'small_scientific' => false], '0.00000000000001'], [1.0005E-14, ['decimals' => 4, 'small_scientific' => false], '0.00000000000001001'], [1E+6, ['precision' => 4, 'small_scientific' => false], '1000000'], [1E+7, ['precision' => 4, 'small_scientific' => false], '1E+7'], [1.4E+100, ['precision' => 4, 'small_scientific' => false], '1E+100'], [1.5E+100, ['precision' => 4, 'small_scientific' => false], '2E+100'], [1.004E+100, ['precision' => 4, 'decimals' => 2, 'small_scientific' => false], '1E+100'], [1.005E+100, ['precision' => 4, 'decimals' => 2, 'small_scientific' => false], '1.01E+100'], [0.129, ['precision' => 4, 'decimals' => 2, 'small_scientific' => false], '0.13'], [0.0129, ['precision' => 4, 'decimals' => 2, 'small_scientific' => false], '0.013'], [0.00129, ['precision' => 4, 'decimals' => 2, 'small_scientific' => false], '0.0013'], [0.000129, ['precision' => 4, 'decimals' => 2, 'small_scientific' => false], '0.00013'], [0.129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true, 'small_scientific' => false], '0.13'], [0.0129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true, 'small_scientific' => false], '0.01'], [0.00129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true, 'small_scientific' => false], '0.00'], [0.000129, ['precision' => 4, 'decimals' => 2, 'decimals_exact' => true, 'small_scientific' => false], '0.00'], [0, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '0'], [0.0004, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '0.0004'], [0.0005, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '0.0005'], [0.00004, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '0.0000'], [0.00005, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '0.0001'], [100.0004, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '100.0004'], [100.0005, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '100.0005'], [100.00004, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '100.0000'], [100.00005, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false], '100.0001'], [0, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false, 'zero_as_zero' => false], '0.0000'], [1, ['decimals' => 4, 'decimals_exact' => true, 'small_scientific' => false, 'zero_as_zero' => false], '1.0000'] ]; } /** * @dataProvider dataProvider * * @param float $source * @param array $options * @param string $expected */ public function test(float $source, array $options, string $expected) { $this->assertSame($expected, formatFloat($source, $options)); } }