Skip to content

Commit

Permalink
Replaced (float) cast with sprintf('%.14F', ...), as it is more p…
Browse files Browse the repository at this point in the history
…recise

Ref: #634 (comment)
  • Loading branch information
Ocramius committed Apr 22, 2021
1 parent eb32c53 commit 9496d09
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
10 changes: 9 additions & 1 deletion src/Exchange/ExchangerExchange.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
use Money\Exception\UnresolvableCurrencyPairException;
use Money\Exchange;

use function assert;
use function is_numeric;
use function sprintf;

/**
* Provides a way to get exchange rate from a third-party source and return a currency pair.
*/
Expand All @@ -36,6 +40,10 @@ public function quote(Currency $baseCurrency, Currency $counterCurrency): Curren
throw UnresolvableCurrencyPairException::createFromCurrencies($baseCurrency, $counterCurrency);
}

return new CurrencyPair($baseCurrency, $counterCurrency, (string) $rate->getValue());
$rateValue = sprintf('%.14F', $rate->getValue());

assert(is_numeric($rateValue));

return new CurrencyPair($baseCurrency, $counterCurrency, $rateValue);
}
}
2 changes: 1 addition & 1 deletion tests/Exchange/ExchangerExchangeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public function it_exchanges_currencies(): void

self::assertEquals($base, $currencyPair->getBaseCurrency());
self::assertEquals($counter, $currencyPair->getCounterCurrency());
self::assertEquals('1.12', $currencyPair->getConversionRatio());
self::assertEquals('1.12000000000000', $currencyPair->getConversionRatio());
}

/** @test */
Expand Down

0 comments on commit 9496d09

Please sign in to comment.