2013-03-03 61 views
1

我试图将我的最终答案舍入为2位小数,所以它是美元和美分。我是编码新手,无法弄清楚。我要舍“W”中,说:“你需要充电量”行这里是我的代码:期待围绕2位小数的最终答案C++

#include <iostream> 

using namespace std; 

int main() 
{ 
    string Choice; 


    float x, w; 

    cout << "Please enter the amount needed." << endl; 
    cin >> x; 


    w = x/(1-0.0275); 

    cout << "The amount you need to charge is $"<< w << "." << endl; 

    return (0); 

} 
+1

http://www.cplusplus.com/forum/beginner/3600/? – 2013-03-03 18:25:26

+3

您无法精确地用浮点数表示大多数小数。使用整数并使用便士来计算。 – 2013-03-03 18:28:03

回答

4

据这里的例子http://www.cplusplus.com/forum/beginner/3600/ 你可以使用

cout << setprecision(2) << fixed << w << endl; 

fixed可选)

你将不得不#include <iomanip>

正如处Synxis指出,这将ONL Ÿ工作打印的价值,它不会改变通过w

+0

仅适用于打印。如果他想'w'只有两位小数,他需要四舍五入(int(100 * w)/100.0)。 – Synxis 2013-03-03 18:31:28

+1

这是真的,但我想这是他需要的 – 2013-03-03 18:33:24

+0

有道理,因为该线在返回语句之前。 – 2013-03-03 18:37:14

2

保存的值可以送花儿给人乘以你的答案x 100,圆形,然后再乘以100

x = (int)(x*100+0.5f); 
x = ((float)(x))/100.0; 
1

划分你可以改变你的货币单位为“美分”,然后除以100获得美元和国防部100获得美分。

unsigned int money = 152; // USD $1.52 

cout << "Money is: " << (money/100) << "." << (money % 100) << "\n"; 

这可能更准确。在网上搜索“一切都知道浮点”。