我正在为一所学校的实验室工作,该实验室运行10个10000张5手牌.我必须在每只手中找到冲洗和成对.我必须找到每条线索的对和冲洗的百分比.
我的问题是当我试图获得一对一条路径的百分比时
double percent = total_pairs/10000;
要么
double percent = 5600/10000;
当我想要打印2个小数位时,我的输出变为0我得到以下内容
0.00
使用此代码
cout<但我仍然得到零,当我像这样投射时,我得到实际数字
double percent = (double) 5600/10000;这是正确的,因为我不希望它截断我的输出或我错过了什么
希望你能理解我.
1> naumcho..:是的,就是这种情况,下面执行整数除法.然后将结果(0)转换为double.
double percent = 5600/10000下面的行强制5600是一个双倍,所以现在你实际划分双打
double percent = (double) 5600/10000如果你的一个数字是常数,你可以确保使用十进制格式来强制浮点除法:
double percent = 5600.0/10000我有时使用的另一个技巧是乘以1.0,将后面的内容转换为double:
double percent = 1.0 * inta / intb
2> Jim Buck..:"total_pairs"是否为int?如果是这样,则除以整数除法.您需要将其中一个数字明确地转换为double(另一个将自动提升为double):
double percent = ((double)total_pairs)/10000; // or just simply 10000.0