匿名美分价值

在最后一个例子中,注意add()写成一个非成员函数。因此,它可以直接调用。我们没有使用add()美分。因为我们没有为这个版本的分类编写的一个add()成员函数。我们当然有可能,但它是更容易在行动中展示这种方式匿名变量。

仙(7)_is_匿名变量,因为这是从来没有一个变量名。也许我在你的这部分的问题的误解?

匿名变量总是与处理的价值。这是不可能创造一个指针或引用一位匿名的变量,也不能使用一个匿名的变量指针或引用参数或返回值预计。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Cents
{
private:
    int m_nCents;
 
public:
    Cents(int nCents) { m_nCents = nCents; }
 
    int GetCents() { return m_nCents; }
};
 
Cents Add(Cents &c1, Cents &c2)
{
    return Cents(c1.GetCents() + c2.GetCents());
}
 
int main()
{
    Cents cCents1(6);
    Cents cCents2(8);
    std::cout << "I have " << Add(cCents1, cCents2).GetCents() << " cents." << std::endl;
 
    return 0;
}

这个版本的add()功能相同的一个以上的,除了它使用匿名美分价值而不是一个命名变量。还注意到,在main(),我们不再使用命名ccentssum变量作为临时存储。相反,我们使用的返回值的add()匿名!

作为一个结果,我们的计划是短的,清洁的,和一般容易跟随(一旦你理解的概念)。

在C++中,匿名变量主要是用来传递或无需创建临时变量很多这样的返回值。然而,值得注意的是,匿名对象只能通过或返回值!如果一个变量被通过或通过引用或地址返回一个已命名的变量,而不是必须使用。另外值得注意的是,因为匿名变量表达的范围,如果您需要在多个表达式参考价值,你将不得不使用一个已命名的变量。


在SAP系统中,美元(USD)与美分(Cent)的转换通常涉及货币金额的处理和精度问题。SAP通过BAPI(业务API)提供了多种方式来实现货币金额的转换和计算,尤其在财务凭证处理、汇率获取以及外币与本币的转换方面。 ### 货币精度与美分处理 美元(USD)通常以两位小数表示,其中1美元等于100美分。在SAP中,货币金额的存储和处理需要考虑小数位数的精度问题。例如,在凭证处理中,金额的存储通常以货币单位的最小单位进行处理,例如以美分存储美元金额。 ### BAPI_ACC_DOCUMENT_POST 与凭证金额处理 在使用`BAPI_ACC_DOCUMENT_POST`创建财务凭证时,如果涉及USD币别,SAP会根据配置的汇率自动计算本位币金额。如果需要避免SAP自动计算本位币金额,可以通过外部系统传入本位币金额,而无需依赖汇率计算。具体实现中,可以通过`currencyamount`参数传递交易币和本位币金额,从而绕过汇率转换逻辑[^1]。 ### 汇率获取与转换 如果需要进行USD到其他货币的转换,可以使用`BAPI_EXCHANGERATE_GETDETAIL`来获取汇率信息。此BAPI允许根据指定的日期、货币类型和汇率类型获取汇率。例如,将USD转换为CNY时,可以通过以下方式获取汇率并进行计算: ```abap DATA: ls_exch_rate TYPE bapi1093_0. CLEAR ls_exch_rate. CALL FUNCTION 'BAPI_EXCHANGERATE_GETDETAIL' EXPORTING rate_type = 'M' " 固定为'M' from_curr = 'USD' " 从USD转换 to_currncy = 'CNY' " 转换为CNY date = sy-datum " 当前日期 IMPORTING exch_rate = ls_exch_rate. IF ls_exch_rate-exch_rate IS NOT INITIAL. ls_account-amount = <fs_ukm_totals>-amount * ls_exch_rate-exch_rate. ENDIF. ``` 通过这种方式,可以确保USD金额的转换精度,并避免由于汇率小数位数足导致的误差[^3]。 ### 美分处理与凭证借贷平衡 在某些情况下,当交易币种的小数位数为0时(例如VND),可能会导致本位币的借贷平衡问题。例如,USD转换为VND时,如果汇率为23655,则需要确保金额的计算精度,以避免因四舍五入导致的误差。可以通过在BAPI调用时精确传递交易币和本位币金额来解决此问题[^2]。 ### 示例:美分级别的金额计算 在实际开发中,为了处理美分级别的金额,可以将美元金额转换为美分进行存储和计算。例如,1.23美元可以存储为123美分。以下是一个简单的转换示例: ```abap DATA: lv_dollar TYPE p DECIMALS 2 VALUE '1.23', lv_cents TYPE i. lv_cents = lv_dollar * 100. WRITE: / 'Dollar to Cents:', lv_cents. ``` 通过这种方式,可以避免浮点数运算带来的精度问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值