/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* Copyright (C) 2004, 2005 StatPro Italia srl This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email . The license is also available online at . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ /*! \file asia.hpp \brief Asian currencies Data from http://fx.sauder.ubc.ca/currency_table.html and http://www.thefinancials.com/vortex/CurrencyFormats.html */ #ifndef quantlib_asian_currencies_hpp #define quantlib_asian_currencies_hpp #include namespace QuantLib { //! Bangladesh taka /*! The ISO three-letter code is BDT; the numeric code is 50. It is divided in 100 paisa. \ingroup currencies */ class BDTCurrency : public Currency { public: BDTCurrency() { static boost::shared_ptr bdtData( new Data("Bangladesh taka", "BDT", 50, "Bt", "", 100, Rounding(), "%3% %1$.2f")); data_ = bdtData; } }; //! Chinese yuan /*! The ISO three-letter code is CNY; the numeric code is 156. It is divided in 100 fen. \ingroup currencies */ class CNYCurrency : public Currency { public: CNYCurrency() { static boost::shared_ptr cnyData( new Data("Chinese yuan", "CNY", 156, "Y", "", 100, Rounding(), "%3% %1$.2f")); data_ = cnyData; } }; //! Honk Kong dollar /*! The ISO three-letter code is HKD; the numeric code is 344. It is divided in 100 cents. \ingroup currencies */ class HKDCurrency : public Currency { public: HKDCurrency() { static boost::shared_ptr hkdData( new Data("Honk Kong dollar", "HKD", 344, "HK$", "", 100, Rounding(), "%3% %1$.2f")); data_ = hkdData; } }; //! Israeli shekel /*! The ISO three-letter code is ILS; the numeric code is 376. It is divided in 100 agorot. \ingroup currencies */ class ILSCurrency : public Currency { public: ILSCurrency() { static boost::shared_ptr ilsData( new Data("Israeli shekel", "ILS", 376, "NIS", "", 100, Rounding(), "%1$.2f %3%")); data_ = ilsData; } }; //! Indian rupee /*! The ISO three-letter code is INR; the numeric code is 356. It is divided in 100 paise. \ingroup currencies */ class INRCurrency : public Currency { public: INRCurrency() { static boost::shared_ptr inrData( new Data("Indian rupee", "INR", 356, "Rs", "", 100, Rounding(), "%3% %1$.2f")); data_ = inrData; } }; //! Iraqi dinar /*! The ISO three-letter code is IQD; the numeric code is 368. It is divided in 1000 fils. \ingroup currencies */ class IQDCurrency : public Currency { public: IQDCurrency() { static boost::shared_ptr iqdData( new Data("Iraqi dinar", "IQD", 368, "ID", "", 1000, Rounding(), "%2% %1$.3f")); data_ = iqdData; } }; //! Iranian rial /*! The ISO three-letter code is IRR; the numeric code is 364. It has no subdivisions. \ingroup currencies */ class IRRCurrency : public Currency { public: IRRCurrency() { static boost::shared_ptr irrData( new Data("Iranian rial", "IRR", 364, "Rls", "", 1, Rounding(), "%3% %1$.2f")); data_ = irrData; } }; //! Japanese yen /*! The ISO three-letter code is JPY; the numeric code is 392. It is divided into 100 sen. \ingroup currencies */ class JPYCurrency : public Currency { public: JPYCurrency() { static boost::shared_ptr jpyData( new Data("Japanese yen", "JPY", 392, "\xA5", "", 100, Rounding(), "%3% %1$.0f")); data_ = jpyData; } }; //! South-Korean won /*! The ISO three-letter code is KRW; the numeric code is 410. It is divided in 100 chon. \ingroup currencies */ class KRWCurrency : public Currency { public: KRWCurrency() { static boost::shared_ptr krwData( new Data("South-Korean won", "KRW", 410, "W", "", 100, Rounding(), "%3% %1$.0f")); data_ = krwData; } }; //! Kuwaiti dinar /*! The ISO three-letter code is KWD; the numeric code is 414. It is divided in 1000 fils. \ingroup currencies */ class KWDCurrency : public Currency { public: KWDCurrency() { static boost::shared_ptr kwdData( new Data("Kuwaiti dinar", "KWD", 414, "KD", "", 1000, Rounding(), "%3% %1$.3f")); data_ = kwdData; } }; //! Nepal rupee /*! The ISO three-letter code is NPR; the numeric code is 524. It is divided in 100 paise. \ingroup currencies */ class NPRCurrency : public Currency { public: NPRCurrency() { static boost::shared_ptr nprData( new Data("Nepal rupee", "NPR", 524, "NRs", "", 100, Rounding(), "%3% %1$.2f")); data_ = nprData; } }; //! Pakistani rupee /*! The ISO three-letter code is PKR; the numeric code is 586. It is divided in 100 paisa. \ingroup currencies */ class PKRCurrency : public Currency { public: PKRCurrency() { static boost::shared_ptr pkrData( new Data("Pakistani rupee", "PKR", 586, "Rs", "", 100, Rounding(), "%3% %1$.2f")); data_ = pkrData; } }; //! Saudi riyal /*! The ISO three-letter code is SAR; the numeric code is 682. It is divided in 100 halalat. \ingroup currencies */ class SARCurrency : public Currency { public: SARCurrency() { static boost::shared_ptr sarData( new Data("Saudi riyal", "SAR", 682, "SRls", "", 100, Rounding(), "%3% %1$.2f")); data_ = sarData; } }; //! %Singapore dollar /*! The ISO three-letter code is SGD; the numeric code is 702. It is divided in 100 cents. \ingroup currencies */ class SGDCurrency : public Currency { public: SGDCurrency() { static boost::shared_ptr sgdData( new Data("Singapore dollar", "SGD", 702, "S$", "", 100, Rounding(), "%3% %1$.2f")); data_ = sgdData; } }; //! Thai baht /*! The ISO three-letter code is THB; the numeric code is 764. It is divided in 100 stang. \ingroup currencies */ class THBCurrency : public Currency { public: THBCurrency() { static boost::shared_ptr thbData( new Data("Thai baht", "THB", 764, "Bht", "", 100, Rounding(), "%1$.2f %3%")); data_ = thbData; } }; //! %Taiwan dollar /*! The ISO three-letter code is TWD; the numeric code is 901. It is divided in 100 cents. \ingroup currencies */ class TWDCurrency : public Currency { public: TWDCurrency() { static boost::shared_ptr twdData( new Data("Taiwan dollar", "TWD", 901, "NT$", "", 100, Rounding(), "%3% %1$.2f")); data_ = twdData; } }; } #endif