c++ - 如何使用美元/欧元符号登录代码来初始化变量?

标签 c++ currency

我想写一些使用不同类型货币的代码,例如

struct euro {
    int value;
};

struct dollar {
    int value;
};

现在我想在代码中使用欧元和美元符号,比如

euro e = 3€;
dollar d = 3$;

这有可能吗?

最佳答案

你需要的是user defined lietrals .下面的代码对我使用 g++ 11.1.0 有效,但我猜非 ASCII € 可能会有一些问题。也许尝试使用 EUR 后缀?对于负值,请参阅 this .

#include <charconv>
#include <cstring>
#include <iostream>
    
struct euro
{
    unsigned long long val;
};

euro operator"" _€ (unsigned long long num)
{
    return euro {num};
}

int main()
{
    euro e = 123_€;
    std::cout << e.val << '\n';
}

关于c++ - 如何使用美元/欧元符号登录代码来初始化变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70435254/

相关文章:

java - 给定货币代码的货币符号

java - NumberFormat.getCurrencyInstance() 将一切都归零?

c# - 在值后显示货币符号

c++ - _iterator_debug_level 值 '0' 与值 '2' 不匹配

php - PHP 的 SplFileObject 类的 C++/VC++ 替代品

javascript - 货币操作的 JavaScript 数字类型有多安全?

ios - 我真的需要将我的项目货币转换为 NSDecimalNumber 吗?

c++ - 如何使用动态指针和智能指针更改变量的值?

c++ - 模板模板时强制特定重载

c++ - 为什么不手动发送 WM_PAINT