1

(我是 C++ 的初学者)。我已经有正确数量的不匹配,并且我的程序中的所有内容都可以正常工作,但是当我尝试实际计算它时,百分比出现为 0。这是我的代码的一部分(特别是唯一出现问题的部分)。有人可以向我解释我做错了什么吗?

    if(input.length() >= input2.length())
    {
        percentage = (uiLevenshteinDistance(input,input2)/input.size())*100;  
        cout << "These sequences are " << percentage << "% similar." << endl; 
    }
    else if(input2.length() >= input.length())
    {
        percentage = (uiLevenshteinDistance(input,input2)/input2.size())*100; 
        cout << "These sequences are " << percentage << "% similiar." << endl;   
    } 
4

1 回答 1

1

确保除法中的分子或分母是双精度/浮点数,否则您将始终从除法中得到 0,从而导致数字 < 1。

类似的东西(double)uiLevenshteinDistance(input,input2)/input.size())会做。

于 2013-05-01T05:30:10.490 回答