Bagikan melalui


Kelas COleCurrency

Merangkum CURRENCY jenis data otomatisasi OLE.

Sintaks

class COleCurrency

Anggota

Konstruktor Publik

Nama Deskripsi
COleCurrency::COleCurrency Membuat COleCurrency objek.

Metode Publik

Nama Deskripsi
COleCurrency::Format Menghasilkan representasi string yang diformat dari COleCurrency objek.
COleCurrency::GetStatus Mendapatkan status (validitas) objek ini COleCurrency .
COleCurrency::P arseCurrency Membaca nilai MATA UANG dari string dan menetapkan nilai COleCurrency.
COleCurrency::SetCurrency Mengatur nilai objek ini COleCurrency .
COleCurrency::SetStatus Mengatur status (validitas) untuk objek ini COleCurrency .

Operator Publik

Nama Deskripsi
operator = COleCurrency Menyalin nilai.
operator +, - Menambahkan, mengurangi, dan mengubah tanda COleCurrency nilai.
operator +=, -= Menambahkan dan mengurangi COleCurrency nilai dari objek ini COleCurrency .
Operator*/ Menskalakan COleCurrency nilai dengan nilai bilangan bulat.
operator *=, /= Menskalakan nilai ini COleCurrency dengan nilai bilangan bulat.
Operator << COleCurrency Menghasilkan nilai ke CArchive atau CDumpContext.
Operator >> COleCurrency Memasukkan objek dari CArchive.
MATA UANG operator COleCurrency Mengonversi nilai menjadi MATA UANG.
operator ==, <, <=, dll. Membandingkan dua COleCurrency nilai.

Anggota Data Publik

Nama Deskripsi
COleCurrency::m_cur Berisi MATA UANG yang mendasar untuk objek ini COleCurrency .
COleCurrency::m_status Berisi status objek ini COleCurrency .

Keterangan

COleCurrency tidak memiliki kelas dasar.

MATA UANG diimplementasikan sebagai nilai bilangan bulat pelengkap dua byte yang diskalakan sebesar 10.000. Ini memberikan angka titik tetap dengan 15 digit di sebelah kiri titik desimal dan 4 digit di sebelah kanan. Jenis data MATA UANG sangat berguna untuk perhitungan yang melibatkan uang, atau untuk perhitungan titik tetap di mana akurasi penting. Ini adalah salah satu jenis yang mungkin untuk VARIANT jenis data otomatisasi OLE.

COleCurrency juga menerapkan beberapa operasi aritmatika dasar untuk jenis titik tetap ini. Operasi yang didukung telah dipilih untuk mengontrol kesalahan pembulatan yang terjadi selama perhitungan titik tetap.

Hierarki Warisan

COleCurrency

Persyaratan

Header: afxdisp.h

COleCurrency::COleCurrency

Membuat COleCurrency objek.

COleCurrency();
COleCurrency(CURRENCY cySrc);
COleCurrency(const COleCurrency& curSrc);
COleCurrency(const VARIANT& varSrc);

COleCurrency(
    long nUnits,
    long nFractionalUnits);

Parameter

cySrc
Nilai MATA UANG yang akan disalin ke dalam objek baru COleCurrency .

curSrc
Objek yang COleCurrency sudah ada untuk disalin ke dalam objek baru COleCurrency .

varSrc
Struktur data yang ada VARIANT (mungkin objek COleVariant ) untuk dikonversi ke nilai mata uang (VT_CY) dan disalin ke dalam objek baru COleCurrency .

nUnits, nFractionalUnits Menunjukkan unit dan bagian pecahan (dalam 1/10.000) dari nilai yang akan disalin ke dalam objek baru COleCurrency .

Keterangan

Semua konstruktor ini membuat objek baru COleCurrency yang diinisialisasi ke nilai yang ditentukan. Deskripsi singkat tentang masing-masing konstruktor ini mengikuti. Kecuali dinyatakan lain, status item baru COleCurrency diatur ke valid.

  • COleCurrency() Membuat objek yang COleCurrency diinisialisasi ke 0 (nol).

  • COleCurrency(cySrc) Membuat COleCurrency objek dari nilai MATA UANG.

  • COleCurrency(curSrc) Membuat COleCurrency objek dari objek yang ada COleCurrency . Objek baru memiliki status yang sama dengan objek sumber.

  • COleCurrency(varSrc) Membuat COleCurrency objek. Mencoba mengonversi struktur atau COleVariant objek VARIAN ke nilai mata uang (VT_CY). Jika konversi ini berhasil, nilai yang dikonversi disalin ke objek baru COleCurrency . Jika tidak, nilai COleCurrency objek diatur ke nol (0) dan statusnya menjadi tidak valid.

  • COleCurrency(nUnits, nFractionalUnits) Membangun COleCurrency objek dari komponen numerik yang ditentukan. Jika nilai absolut bagian pecahan lebih besar dari 10.000, penyesuaian yang sesuai dilakukan pada unit. Perhatikan bahwa unit dan bagian pecahan ditentukan oleh nilai panjang yang ditandatangani.

Untuk informasi selengkapnya, lihat entri MATA UANG dan VARIAN di Windows SDK.

Contoh

Contoh berikut menunjukkan efek konstruktor parameter nol dan dua parameter:

COleCurrency curZero;         // value: 0.0000
COleCurrency curA(4, 500);    // value: 4.0500
COleCurrency curB(2, 11000);  // value: 3.1000
COleCurrency curC(2, -50);    // value: 1.9950

COleCurrency::Format

Panggil fungsi anggota ini untuk membuat representasi nilai mata uang yang diformat.

CString Format(DWORD  dwFlags = 0, LCID  lcid = LANG_USER_DEFAULT) const;

Parameter

dwFlags
Menunjukkan bendera untuk pengaturan lokal. Hanya bendera berikut yang relevan dengan mata uang:

  • LOCALE_NOUSEROVERRIDE Gunakan pengaturan lokal default sistem, bukan pengaturan pengguna kustom.

Icid
Menunjukkan ID lokal yang akan digunakan untuk konversi.

Tampilkan Nilai

yang CString berisi nilai mata uang yang diformat.

Keterangan

Ini memformat nilai menggunakan spesifikasi bahasa lokal (ID lokal). Simbol mata uang tidak disertakan dalam nilai yang dikembalikan. Jika status objek ini COleCurrency null, nilai yang dikembalikan adalah string kosong. Jika status tidak valid, string pengembalian ditentukan oleh sumber daya string IDS_INVALID_CURRENCY.

Contoh

COleCurrency curA;           // value: 0.0000
curA.SetCurrency(4, 500);    // value: 4.0500

// value returned: 4.05
curA.Format(0, MAKELCID(MAKELANGID(LANG_CHINESE,
   SUBLANG_CHINESE_SINGAPORE), SORT_DEFAULT));
// value returned: 4,05
curA.Format(0, MAKELCID(MAKELANGID(LANG_GERMAN,
   SUBLANG_GERMAN_AUSTRIAN), SORT_DEFAULT));

COleCurrency::GetStatus

Panggil fungsi anggota ini untuk mendapatkan status (validitas) objek tertentu COleCurrency .

CurrencyStatus GetStatus() const;

Tampilkan Nilai

Mengembalikan status nilai ini COleCurrency .

Keterangan

Nilai pengembalian didefinisikan oleh CurrencyStatus jenis enumerasi yang ditentukan dalam COleCurrency kelas .

enum CurrencyStatus {
    valid = 0,
    invalid = 1,
    null = 2
    };

Untuk deskripsi singkat tentang nilai status ini, lihat daftar berikut ini:

  • COleCurrency::valid Menunjukkan bahwa objek ini COleCurrency valid.

  • COleCurrency::invalid Menunjukkan bahwa objek ini COleCurrency tidak valid; artinya, nilainya mungkin salah.

  • COleCurrency::null Menunjukkan bahwa objek ini COleCurrency null, yaitu tidak ada nilai yang disediakan untuk objek ini. (Ini adalah "null" dalam arti database "tidak memiliki nilai," dibandingkan dengan C++ NULL.)

Status COleCurrency objek tidak valid dalam kasus berikut:

  • Jika nilainya diatur dari VARIAN atau COleVariant nilai yang tidak dapat dikonversi ke nilai mata uang.

  • Jika objek ini mengalami luapan atau aliran bawah selama operasi penetapan aritmatika, misalnya += atau *=.

  • Jika nilai tidak valid ditetapkan ke objek ini.

  • Jika status objek ini secara eksplisit diatur ke tidak valid menggunakan SetStatus.

Untuk informasi selengkapnya tentang operasi yang dapat mengatur status menjadi tidak valid, lihat fungsi anggota berikut ini:

Contoh

// even an empty COleCurrency is valid
COleCurrency cy;
ASSERT(cy.GetStatus() == COleCurrency::valid);

// always valid after being set
cy.SetCurrency(4, 500);
ASSERT(cy.GetStatus() == COleCurrency::valid);

// some conversions aren't possible and will
// cause an invalid state, like this:
CByteArray array;
COleVariant varBogus(array);
cy = varBogus;
ASSERT(cy.GetStatus() == COleCurrency::invalid);

COleCurrency::m_cur

Struktur MATA UANG yang mendasar untuk objek iniCOleCurrency.

Keterangan

Perhatian

Mengubah nilai dalam struktur yang CURRENCY diakses oleh penunjuk yang dikembalikan oleh fungsi ini akan mengubah nilai objek ini COleCurrency . Ini tidak mengubah status objek ini COleCurrency .

Untuk informasi selengkapnya, lihat entri MATA UANG di Windows SDK.

COleCurrency::m_status

Jenis anggota data ini adalah jenis CurrencyStatusenumerasi , yang ditentukan dalam COleCurrency kelas .

enum CurrencyStatus{
    valid = 0,
    invalid = 1,
    null = 2,
};

Keterangan

Untuk deskripsi singkat tentang nilai status ini, lihat daftar berikut ini:

  • COleCurrency::valid Menunjukkan bahwa objek ini COleCurrency valid.

  • COleCurrency::invalid Menunjukkan bahwa objek ini COleCurrency tidak valid; artinya, nilainya mungkin salah.

  • COleCurrency::null Menunjukkan bahwa objek ini COleCurrency null, yaitu tidak ada nilai yang disediakan untuk objek ini. (Ini adalah "null" dalam arti database "tidak memiliki nilai," dibandingkan dengan C++ NULL.)

Status COleCurrency objek tidak valid dalam kasus berikut:

  • Jika nilainya diatur dari VARIAN atau COleVariant nilai yang tidak dapat dikonversi ke nilai mata uang.

  • Jika objek ini mengalami luapan atau aliran bawah selama operasi penetapan aritmatika, misalnya += atau *=.

  • Jika nilai tidak valid ditetapkan ke objek ini.

  • Jika status objek ini secara eksplisit diatur ke tidak valid menggunakan SetStatus.

Untuk informasi selengkapnya tentang operasi yang dapat mengatur status menjadi tidak valid, lihat fungsi anggota berikut ini:

Perhatian

Anggota data ini untuk situasi pemrograman tingkat lanjut. Anda harus menggunakan fungsi anggota sebaris GetStatus dan SetStatus. Lihat SetStatus untuk perhatian lebih lanjut mengenai pengaturan anggota data ini secara eksplisit.

COleCurrency::operator =

Operator penugasan yang kelebihan beban ini menyalin nilai mata uang sumber ke dalam objek ini COleCurrency .

const COleCurrency& operator=(CURRENCY cySrc);
const COleCurrency& operator=(const COleCurrency& curSrc);
const COleCurrency& operator=(const VARIANT& varSrc);

Keterangan

Deskripsi singkat tentang setiap operator berikut:

  • operator =( cySrc ) Nilai CURRENCY disalin ke COleCurrency dalam objek dan statusnya diatur ke valid.

  • operator =( curSrc ) Nilai dan status operand, objek yang ada COleCurrency disalin ke dalam objek ini COleCurrency .

  • operator =( varSrc ) Jika konversi VARIANT nilai (atau objek COleVariant ) ke mata uang ( VT_CY) berhasil, nilai yang dikonversi disalin ke objek ini COleCurrency dan statusnya diatur ke valid. Jika konversi tidak berhasil, nilai COleCurrency objek diatur ke 0 dan statusnya menjadi tidak valid.

Untuk informasi selengkapnya, lihat entri MATA UANG dan VARIAN di Windows SDK.

Contoh

// set to 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2;

// operator= copies COleCurrency types
cur2 = cur1;
ASSERT(cur1 == cur2);

// can be used to assign a CURRENCY type, as well
CURRENCY cy;
cy.Hi = 0;
cy.Lo = 350050;
cy.int64 = 350050;

// perform assignment
COleCurrency cur3;
cur3 = cy;
ASSERT(cur3 == cur1);

COleCurrency::operator +, -

Operator ini memungkinkan Anda menambahkan dan mengurangi dua COleCurrency nilai satu sama lain dan mengubah tanda COleCurrency nilai.

COleCurrency operator+(const COleCurrency& cur) const;
COleCurrency operator-(const COleCurrency& cur) const;
COleCurrency operator-() const;

Keterangan

Jika salah satu operand null, status nilai yang COleCurrency dihasilkan adalah null.

Jika operasi aritmatika meluap, nilai yang COleCurrency dihasilkan tidak valid.

Jika operand tidak valid dan yang lain tidak null, status nilai yang COleCurrency dihasilkan tidak valid.

Untuk informasi selengkapnya tentang nilai status valid, tidak valid, dan null, lihat variabel anggota m_status .

Contoh

// 35.0050
COleCurrency cur1(35, 50);
// 2.0075
COleCurrency cur2(2, 75);
COleCurrency cur3;

// sum is 37.0125
cur3 = cur1 + cur2;
ASSERT(cur3 == COleCurrency(37, 125));

// difference is 32.9975
cur3 = cur1 - cur2;
ASSERT(cur3 == COleCurrency(32, 9975));

COleCurrency::operator +=, -=

Izinkan Anda menambahkan dan mengurangi COleCurrency nilai ke dan dari objek ini COleCurrency .

const COleCurrency& operator+=(const COleCurrency& cur);
const COleCurrency& operator-=(const COleCurrency& cur);

Keterangan

Jika salah satu operand null, status objek ini COleCurrency diatur ke null.

Jika operasi aritmatika meluap, status objek ini COleCurrency diatur ke tidak valid.

Jika salah satu operand tidak valid dan yang lain tidak null, status objek ini COleCurrency diatur ke tidak valid.

Untuk informasi selengkapnya tentang nilai status valid, tidak valid, dan null, lihat variabel anggota m_status .

Contoh

// both set to 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2(35, 50);

// adding 2.0075 results in 37.0125
cur1 += COleCurrency(2, 75);
ASSERT(cur1 == COleCurrency(37, 125));

// subtracting 2.0075 results in 32.9975
cur2 -= COleCurrency(2, 75);
ASSERT(cur2 == COleCurrency(32, 9975));

COleCurrency::operator * dan /

Memungkinkan Anda menskalakan COleCurrency nilai dengan nilai integral.

COleCurrency operator*(long nOperand) const;
COleCurrency operator/(long nOperand) const;

Keterangan

COleCurrency Jika operand null, status nilai yang COleCurrency dihasilkan adalah null.

Jika operasi aritmatika meluap atau underflow, status nilai yang COleCurrency dihasilkan tidak valid.

COleCurrency Jika operand tidak valid, status nilai yang COleCurrency dihasilkan tidak valid.

Untuk informasi selengkapnya tentang nilai status valid, tidak valid, dan null, lihat variabel anggota m_status .

Contoh

// 35 units and 50/10000, or 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2;

// divided by two is 17.5025
cur2 = cur1 / 2;
ASSERT(cur2 == COleCurrency(17, 5025));

// multiplied by two is 70.0100
cur2 = cur1 * 2;
ASSERT(cur2 == COleCurrency(70, 100));

COleCurrency::operator *=, /=

Memungkinkan Anda untuk menskalakan nilai ini COleCurrency dengan nilai integral.

const COleCurrency& operator*=(long nOperand);
const COleCurrency& operator/=(long nOperand);

Keterangan

COleCurrency Jika operand null, status objek ini COleCurrency diatur ke null.

Jika operasi aritmatika meluap, status objek ini COleCurrency diatur ke tidak valid.

COleCurrency Jika operand tidak valid, status objek ini COleCurrency diatur ke tidak valid.

Untuk informasi selengkapnya tentang nilai status valid, tidak valid, dan null, lihat variabel anggota m_status .

Contoh

// both set to 35.0050
COleCurrency cur1(35, 50);
COleCurrency cur2(35, 50);

// divide in half
cur1 /= 2;
ASSERT(cur1 == COleCurrency(17, 5025));

// multiply by two
cur2 *= 2;
ASSERT(cur2 == COleCurrency(70, 100));

operator <<, operator >>

Mendukung pembuangan diagnostik dan penyimpanan ke arsip.

friend CDumpContext& operator<<(
    CDumpContext& dc,
    COleCurrency curSrc);

friend CArchive& operator<<(
    CArchive& ar,
    COleCurrency curSrc);

friend CArchive& operator>>(
    CArchive& ar,
    COleCurrency& curSrc);

Keterangan

Operator ekstraksi ( >>) mendukung pemuatan dari arsip.

COleCurrency::operator CURRENCY

Mengembalikan struktur yang CURRENCY nilainya disalin dari objek ini COleCurrency .

operator CURRENCY() const;

Keterangan

COleCurrency::P arseCurrency

Panggil fungsi anggota ini untuk mengurai string untuk membaca nilai mata uang.

BOOL ParseCurrency(
    LPCTSTR lpszCurrency,
    DWORD dwFlags = 0,
    LCID lcid = LANG_USER_DEFAULT);

throw(CMemoryException*);
throw(COleException*);

Parameter

lpszCurrency
Penunjuk ke string null-terminated yang akan diurai.

dwFlags
Menunjukkan bendera untuk pengaturan lokal, mungkin bendera berikut:

  • LOCALE_NOUSEROVERRIDE Gunakan pengaturan lokal default sistem, bukan pengaturan pengguna kustom.

Icid
Menunjukkan ID lokal yang akan digunakan untuk konversi.

Tampilkan Nilai

Bukan nol jika string berhasil dikonversi ke nilai mata uang, jika tidak, 0.

Keterangan

Ini menggunakan spesifikasi bahasa lokal (ID lokal) untuk arti karakter nonnumerik dalam string sumber.

Untuk diskusi nilai ID lokal, lihat Mendukung Beberapa Bahasa.

Jika string berhasil dikonversi ke nilai mata uang, nilai objek ini COleCurrency diatur ke nilai tersebut dan statusnya ke valid.

Jika string tidak dapat dikonversi ke nilai mata uang atau jika ada luapan numerik, status objek ini COleCurrency tidak valid.

Jika konversi string gagal karena kesalahan alokasi memori, fungsi ini akan melempar CMemoryException. Dalam status kesalahan lainnya, fungsi ini melempar COleException.

Contoh

// works if default locale has dot decimal point
COleCurrency cur;
cur.ParseCurrency(_T("$135.95"), 0);
ASSERT(cur == COleCurrency(135, 9500));

Operator Relasional COleCurrency

Bandingkan dua nilai mata uang dan kembalikan nonzero jika kondisinya benar; jika tidak, 0.

BOOL operator==(const COleCurrency& cur) const;
BOOL operator!=(const COleCurrency& cur) const;
BOOL operator<(const COleCurrency& cur) const;
BOOL operator>(const COleCurrency& cur) const;
BOOL operator<=(const COleCurrency& cur) const;
BOOL operator>=(const COleCurrency& cur) const;

Keterangan

Catatan

Nilai pengembalian operasi pengurutan ( <, <=, >, >=) tidak terdefinisi jika status salah satu operand null atau tidak valid. Operator kesetaraan ( ==, !=) mempertimbangkan status operand.

Contoh

COleCurrency curOne(3, 5000);             // 3.5
COleCurrency curTwo(curOne);              // 3.5
BOOL b = (curOne == curTwo);              // TRUE

b = curOne < curTwo;                      // FALSE, same value
b = curOne > curTwo;                      // FALSE, same value
b = curOne <= curTwo;                     // TRUE, same value
b = curOne >= curTwo;                     // TRUE, same value
curTwo.SetStatus(COleCurrency::invalid);
b = curOne == curTwo;                     // FALSE, different status
b = curOne != curTwo;                     // TRUE, different status

COleCurrency::SetCurrency

Panggil fungsi anggota ini untuk mengatur unit dan bagian pecahan dari objek ini COleCurrency .

void SetCurrency(
    long nUnits,
    long nFractionalUnits);

Parameter

nUnits, nFractionalUnits Menunjukkan unit dan bagian pecahan (dalam 1/10.000) dari nilai yang akan disalin ke dalam objek ini COleCurrency .

Keterangan

Jika nilai absolut bagian pecahan lebih besar dari 10.000, penyesuaian yang sesuai dilakukan pada unit, seperti yang ditunjukkan pada contoh ketiga berikut.

Perhatikan bahwa unit dan bagian pecahan ditentukan oleh nilai panjang yang ditandatangani. Contoh keempat berikut menunjukkan apa yang terjadi ketika parameter memiliki tanda yang berbeda.

Contoh

COleCurrency curA;           // value: 0.0000
curA.SetCurrency(4, 500);    // value: 4.0500
curA.SetCurrency(2, 11000);  // value: 3.1000
curA.SetCurrency(2, -50);    // value: 1.9950

COleCurrency::SetStatus

Panggil fungsi anggota ini untuk mengatur status (validitas) objek ini COleCurrency .

void SetStatus(CurrencyStatus  status  );

Parameter

status
Status baru untuk objek ini COleCurrency .

Keterangan

Nilai parameter status didefinisikan oleh CurrencyStatus jenis enumerasi, yang ditentukan dalam COleCurrency kelas .

enum CurrencyStatus {
    valid = 0,
    invalid = 1,
    null = 2
    };

Untuk deskripsi singkat tentang nilai status ini, lihat daftar berikut ini:

  • COleCurrency::valid Menunjukkan bahwa objek ini COleCurrency valid.

  • COleCurrency::invalid Menunjukkan bahwa objek ini COleCurrency tidak valid; artinya, nilainya mungkin salah.

  • COleCurrency::null Menunjukkan bahwa objek ini COleCurrency null, yaitu tidak ada nilai yang disediakan untuk objek ini. (Ini adalah "null" dalam arti database "tidak memiliki nilai," dibandingkan dengan C++ NULL.)

Perhatian

Fungsi ini untuk situasi pemrograman tingkat lanjut. Fungsi ini tidak mengubah data dalam objek ini. Ini paling sering akan digunakan untuk mengatur status ke null atau tidak valid. Perhatikan bahwa operator penugasan ( operator =) dan SetCurrency memang mengatur status ke objek berdasarkan nilai sumber.

Lihat juga

Bagan Hierarki
Kelas COleVariant