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
) MembuatCOleCurrency
objek dari nilai MATA UANG.COleCurrency(
curSrc
) MembuatCOleCurrency
objek dari objek yang adaCOleCurrency
. Objek baru memiliki status yang sama dengan objek sumber.COleCurrency(
varSrc
) MembuatCOleCurrency
objek. Mencoba mengonversi struktur atauCOleVariant
objek VARIAN ke nilai mata uang (VT_CY). Jika konversi ini berhasil, nilai yang dikonversi disalin ke objek baruCOleCurrency
. Jika tidak, nilaiCOleCurrency
objek diatur ke nol (0) dan statusnya menjadi tidak valid.COleCurrency(
nUnits
,nFractionalUnits
) MembangunCOleCurrency
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 iniCOleCurrency
valid.COleCurrency::invalid
Menunjukkan bahwa objek iniCOleCurrency
tidak valid; artinya, nilainya mungkin salah.COleCurrency::null
Menunjukkan bahwa objek iniCOleCurrency
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 CurrencyStatus
enumerasi , 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 iniCOleCurrency
valid.COleCurrency::invalid
Menunjukkan bahwa objek iniCOleCurrency
tidak valid; artinya, nilainya mungkin salah.COleCurrency::null
Menunjukkan bahwa objek iniCOleCurrency
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
) NilaiCURRENCY
disalin keCOleCurrency
dalam objek dan statusnya diatur ke valid.operator =(
curSrc
) Nilai dan status operand, objek yang adaCOleCurrency
disalin ke dalam objek iniCOleCurrency
.operator =( varSrc ) Jika konversi
VARIANT
nilai (atau objek COleVariant ) ke mata uang (VT_CY
) berhasil, nilai yang dikonversi disalin ke objek iniCOleCurrency
dan statusnya diatur ke valid. Jika konversi tidak berhasil, nilaiCOleCurrency
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 iniCOleCurrency
valid.COleCurrency::invalid
Menunjukkan bahwa objek iniCOleCurrency
tidak valid; artinya, nilainya mungkin salah.COleCurrency::null
Menunjukkan bahwa objek iniCOleCurrency
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.