numeric_limts

本文通过C++标准库中的numeric_limits模板类展示了如何获取不同数值类型的数据特征,如最大值、最小值等,并演示了如何判断字符类型的符号属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用于取得某数据类型的特征:numeric_limits<T>

#include <iostream>

#include <limits>

#include <string>

 

using namespace std;

 

int main()

{

       cout << boolalpha;

 

       //看函数名字就知道了。

       cout << "max(short):" << std::numeric_limits<short>::max() <<endl;

       cout << "max(int):" << numeric_limits<int>::max() <<endl;

       cout << "max(long):" << numeric_limits<long>::max() <<endl;

 

       cout << "min(float):" << numeric_limits<float>::min() <<endl;

       cout << "max(double):" << numeric_limits<double>::max() <<endl;

       cout << "max(long double):" << numeric_limits<long double>::max() <<endl;

 

       cout << "is_signed(char):" << numeric_limits<char>::is_signed << endl;

       cout << "is_specialized(string)" << numeric_limits<string>::is_specialized << endl;

 

       return 0;

}

converted_data AS ( SELECT contra_no, no_product, fpd, latest_pry_tm, COALESCE( DATEDIFF(TO_DATE('20250805', 'yyyyMMdd'), TO_DATE(latest_pry_tm, 'yyyy-MM-dd')), CAST(latest_pry_tm AS DOUBLE) ) AS numeric_value FROM risk_proxy WHERE DATEDIFF(TO_DATE('20250805', 'yyyyMMdd'), TO_DATE(fst_loan_pmt_due_dt, 'yyyy-MM-dd')) >= 1 ), -- 分箱处理 binned_data AS ( SELECT contra_no, no_product, fpd, numeric_value, CASE WHEN numeric_value IS NULL THEN '其他区间' WHEN numeric_value > 0 AND numeric_value <= 1 THEN '(0,1]' WHEN numeric_value > 1 AND numeric_value <= 2 THEN '(1,2]' WHEN numeric_value > 2 AND numeric_value <= 3 THEN '(2,3]' WHEN numeric_value > 3 AND numeric_value <= 4 THEN '(3,4]' WHEN numeric_value > 4 AND numeric_value <= 5 THEN '(4,5]' WHEN numeric_value > 5 AND numeric_value <= 6 THEN '(5,6]' WHEN numeric_value > 6 AND numeric_value <= 7 THEN '(6,7]' WHEN numeric_value > 7 AND numeric_value <= 8 THEN '(7,8]' WHEN numeric_value > 8 AND numeric_value <= 9 THEN '(8,9]' WHEN numeric_value > 9 AND numeric_value <= 10 THEN '(9,10]' WHEN numeric_value > 10 AND numeric_value <= 15 THEN '(10,15]' WHEN numeric_value > 15 AND numeric_value <= 20 THEN '(15,20]' WHEN numeric_value > 20 AND numeric_value <= 200 THEN '(20,200]' ELSE '其他区间' END AS time_bin FROM converted_data ) SELECT time_bin AS `放款天数分箱`, no_product AS `产品类型`, COUNT(DISTINCT contra_no) AS `总样本数`, SUM(CASE WHEN fpd >= 1 THEN 1 ELSE 0 END) AS fpd1_amt, ROUND(SUM(CASE WHEN fpd >= 1 THEN 1 ELSE 0 END) * 1.0 / COUNT(DISTINCT contra_no), 4) AS fpd1, ROUND( COALESCE( (SUM(CASE WHEN fpd >= 1 THEN 1 ELSE 0 END) * 1.0 / COUNT(DISTINCT contra_no)) / NULLIF((SELECT global_fpd1 FROM overall), 0), 0), 4) AS fpd1_lift FROM binned_data GROUP BY time_bin, no_product ORDER BY no_product, CASE time_bin WHEN '(0,1]' THEN 1 WHEN '(1,2]' THEN 2 WHEN '(2,3]' THEN 3 WHEN '(3,4]' THEN 4 WHEN '(4,5]' THEN 5 WHEN '(5,6]' THEN 6 WHEN '(6,7]' THEN 7 WHEN '(7,8]' THEN 8 WHEN '(8,9]' THEN 9 WHEN '(9,10]' THEN 10 WHEN '(10,15]' THEN 11 WHEN '(15,20]' THEN 12 WHEN '(20,200]' THEN 13 ELSE 14 END; 我修改了代码但是报语法错误
最新发布
08-08
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值