【基础练习】【小数位数】小玉家的电费
2015-02-10 16:31
211 查看
题目来自 洛谷P1422
月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。
题目很简单,但是做了才知道原来我不会写流输出控制小数位数= =果然书到用时方恨少事非经过不知难、
这里引用一份来自本站xidian13071185老师的文字:
#include <iostream>
#include <iomanip>
using namespace std;
int main( void )
{
const double value = 12.3456789;
cout << value << endl; // 默认以6精度,所以输出为 12.3457
cout << setprecision(4)<< value << endl; // 改成4精度,所以输出为12.35
cout << setprecision(8) << value << endl; // 改成8精度,所以输出为12.345679
cout << fixed << setprecision(4)<< value << endl; // 加了fixed意味着是固定点方式显示,所以这里的精度指的是小数位,输出为12.3457
cout << value << endl; // fixed和setprecision的作用还在,依然显示12.3457
cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢复成整个数值的有效位数,显示为12.35
cout << value << endl;
cout.precision( 6 ); // 恢复成原来的样子,输出为12.3457【可以通过这种方法统一规定位数
cout << value << endl;
}
原址:http://blog.csdn.net/xidian13071185/article/details/4672344
于是本题代码:
顺带复习一下,如果用C标注输入输出,本题应当这样写:
——纸上得来终觉浅,绝知此事要躬行
月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。
题目很简单,但是做了才知道原来我不会写流输出控制小数位数= =果然书到用时方恨少事非经过不知难、
这里引用一份来自本站xidian13071185老师的文字:
#include <iostream>
#include <iomanip>
using namespace std;
int main( void )
{
const double value = 12.3456789;
cout << value << endl; // 默认以6精度,所以输出为 12.3457
cout << setprecision(4)<< value << endl; // 改成4精度,所以输出为12.35
cout << setprecision(8) << value << endl; // 改成8精度,所以输出为12.345679
cout << fixed << setprecision(4)<< value << endl; // 加了fixed意味着是固定点方式显示,所以这里的精度指的是小数位,输出为12.3457
cout << value << endl; // fixed和setprecision的作用还在,依然显示12.3457
cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢复成整个数值的有效位数,显示为12.35
cout << value << endl;
cout.precision( 6 ); // 恢复成原来的样子,输出为12.3457【可以通过这种方法统一规定位数
cout << value << endl;
}
原址:http://blog.csdn.net/xidian13071185/article/details/4672344
于是本题代码:
#include<iostream> #include<iomanip> using namespace std; int main(){ double n; cin>>n; if (n>400) cout<<fixed<<setprecision(1)<<150*0.4463+250*0.4663+(n-400)*0.5663; else if(n>150) cout<<fixed<<setprecision(1)<<150*0.4463+(n-150)*0.4663; else cout<<fixed<<setprecision(1)<<n*0.4463; return 0; }
顺带复习一下,如果用C标注输入输出,本题应当这样写:
printf("%.1lf",value);
——纸上得来终觉浅,绝知此事要躬行
相关文章推荐
- JavaScript基础 toFixed() 将一个数值转成字符串,并进行四舍五入,保留指定位数的小数
- python基础练习---判断正整数位数并逆序排列
- Java_语法基础_保留指定位数小数
- JavaScript基础 toFixed() 将一个数值转成字符串,并进行四舍五入,保留指定位数的小数
- Android基础--EditText输入框限制小数的位数解决方法
- [C#]练习了下数组和类,C++ 基础还算可以,不是很吃力
- 用javascript实现浮点数的截取小数位数,并四舍五入
- java 截取小数位数
- 利用DecimalFormat类生成所需要小数位数的数
- 字符串 转 BCD,有四舍五入的功能,参数1 字节数,参数2 小数位数。
- 保留小数位数的函数--js
- 精度、小数位数和长度-msdn
- 可配置保留小数位数的四舍五入方法
- SQL SERVER 列出所有用户表,字段名,主键,类型,长度,小数位数等信息(转)
- 设置货币值中使用的小数位数
- JAVA中制定小数部分的位数(例子)
- 列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息
- 怎么用DecimalFormat来控制小数的位数
- 控制数字在TEXTBOX里显示的小数位数
- 获得一个数值的有效小数位数(不含后面的0补位)