【基础练习】【小数位数】小玉家的电费

题目来自 洛谷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

于是本题代码:

#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);

——纸上得来终觉浅,绝知此事要躬行

时间: 2024-12-27 10:22:10

【基础练习】【小数位数】小玉家的电费的相关文章

洛谷-小玉家的电费-顺序与分支

题目描述 Description 夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了.小玉家今天收到了一份电费通知单.小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢.请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少

P1422 小玉家的电费

题目描述 夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了.小玉家今天收到了一份电费通知单.小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢.请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少. 输入格式 输入一个整

小鱼家的电费

题目描述 夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了.小玉家今天收到了一份电费通知单.小玉看到上面写:据闽价电[2006]27号规定,月用电量在150千瓦时及以下部分按每千瓦时0.4463元执行,月用电量在151~400千瓦时的部分按每千瓦时0.4663元执行,月用电量在401千瓦时及以上部分按每千瓦时0.5663元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢.请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少. 输入输出格式 输入格

在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数)

//在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数) function formatNum(num, n) {//参数说明:num 要格式化的数字 n 保留小数位 num = String(num.toFixed(n)); var re = /(-?\d+)(\d{3})/; while (re.test(num)) num = num.replace(re, "$1,$2") ret

转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数

关于处理小数点位数的几个oracle函数() 1. 取四舍五入的几位小数 select round(1.2345, 3) from dual; 结果:1.235 2. 保留两位小数,只舍 select trunc(1.2345, 2) from dual; 结果:1.23 select trunc(1.2399, 2) from dual; 结果:1.23 3.取整数 返回大于或等于x的最大整数: SQL> select ceil(23.33) from dual; 结果: 24 返回等于或小于

Java学习-047-数值格式化及小数位数四舍五入

此小工具类主要用于数值四舍五入.数值格式化输出,很简单,若想深入研究,敬请自行查阅 BigDecimal 或 DecimalFormat 的 API,BigDecimal.setScale(位数,四舍五入法)中四舍五入法有如下 7 种: 1. ROUND_UP:远离零方向舍入.向绝对值最大的方向舍入,只要舍弃位非0即进位. 2. ROUND_DOWN:趋向零方向舍入.向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况. 3. ROUND_CEILING:向正无穷方向舍入.向正最大方向靠拢.

js数据保留小数位数

1000.12345.toFixed(2)=1000.12: 1000.12987.toFixed(2)=1000.13: 1000.1.toFixed(2)=1000.10 js数据保留小数位数,布布扣,bubuko.com

JS中保留小数位数

一.1.2.toFixed(2) 浮点数进行四舍五入设置指定小数位的数值 二.2.toFixed(2) 整数尝试,但是在JS中会被认为是对象名,以至于无法使用 三."1.2".toFixed(2) 由于toFixed方法是针对Number类型的,所以string类型的即使能够转换成数字,也不能使用这个方法 四.var a=1;a.toFixed(2); 构造整数对象,那么就可以调用了 http://www.w3school.com.cn/jsref/jsref_tofixed.asp

ADF_12c_保留小数位数问题

Jdeveloper (Version 12.1.2)默认显示三位小数,有小数精度要求时,给出如下解答. 进入该VO,找到有小数位数需求的列: 属性 UI Hint       format type:Number       format:###0.000000 如上是保留六位小数的情况,其他可类推.