十进制格式与更优雅的C ++

时间:2012-10-12 21:16:47

标签: c++

我有这段代码:

            void FeetInches::decimal() 
            {
                if (inches == 6.0)
                {
                    inches = 5;
                    std::cout << feet << "." << inches << " feet";  //not the best but works..
                }
            }

这将打印12英尺6英寸,12.5英尺的东西。我宁愿不使用这种“hackish”方法,并使其像这样:

            void FeetInches::decimal() 
            {
                if (inches == 6.0)
                {
                    inches = .5;
                    std::cout << feet << inches << " feet";  //not the best but works..
                }
            }

但这将打印60.5英寸(我需要6.5英寸)。基本上如果我单独打印英寸它打印0.5。我想要英寸只打印.5没有零。不能用printf方法或其他快速技术实现这个吗?

的方式是数据类型加倍

1 个答案:

答案 0 :(得分:8)

如何首先将英寸转换为英尺:

feet = feet + inches / 12.0;

现在打印出结果。或者,如果您不想更改feet变量,请直接在cout语句中进行计算,或使用临时变量进行计算。