如何像 double 一样计算 int

How to cout int like a double

我想显示一些带有货币索引的整数(我的意思是点和双零) 例如这里:

#include <iostream>

int main() {
    int w1=700,c1=99,c2=98;
    double noh2o=w1*(100.0-c1)/100.0;
    double w2=noh2o+noh2o/(100.0-c2)*c2;
    std::cout<<w2<<std::endl;
}

如果有人能帮助我,我将不胜感激。

使用std::fixed and std::setprecision.

Try it online!

#include <iostream>
#include <iomanip>

int main() {
    int w1=700,c1=99,c2=98;
    double noh2o=w1*(100.0-c1)/100.0;
    double w2=noh2o+noh2o/(100.0-c2)*c2;
    std::cout << std::fixed << std::setprecision(2) << w2 << std::endl;
}

输出:

350.00

您应该使用语言环境库来完成。

主要从 https://en.cppreference.com/w/cpp/io/manip/put_money 复制而来,如下所示:

#include <iomanip>
#include <iostream>
#include <locale>

int main() {
  long double val = 239.9;
  std::cout.imbue(std::locale("en_US.UTF-8"));
  std::cout << std::showbase
            << "en_US: " << std::put_money(val)
            << std::endl;
  return 0;
}