在字符串函数中读取小数点后的2个位置

时间:2016-03-22 22:56:10

标签: c++

如何在字符串中放入一段时间后读取2位数字?而不是3.146543,现在是3.14。

这是我目前的代码:

string toCurrency(double &input) {
string output = "$";
string numberString = to_string(input);

for (auto singleChar : numberString) {
    output += singleChar;
    if (singleChar = '.') {

    }
}
return output;

提前致谢!

2 个答案:

答案 0 :(得分:2)

您可以使用旧的for循环:

string toCurrency(double &input) {
    string output = "$";
    string numberString = to_string(input);

    for (int i = 0; i < numberString.size(); ++i) {
        output += numberString[i];
        if (numberString[i] == '.') {
            output += numberString[i+1];
            output += numberString[i+2];
            break;
        }
    }
    return output;
}

答案 1 :(得分:1)

你可以简单地创建一个bool,并在找到点“。”时将其变为true。和一个计数器来计算你在点后传递的字符数:

string toCurrency(double &input) {
    string output = "$";
    string numberString = to_string(input);
    int counter = 0;
    bool dot = false;

    for (auto singleChar : numberString) {
        output += singleChar;
        if (singleChar == '.')
           dot = true;
        if (dot) counter++;
        if (counter==3) break;
    }
return output;
}