c++如何保留两位小数 c++中怎么让输出的数为保留两位小数的形式

C++\u4e2d\uff0c\u600e\u6837\u8ba9\u7ed3\u679c\u4fdd\u5b58\u4e24\u4f4d\u5c0f\u6570

\u5206\u7ed9\u697c\u4e0a\u7684,\u7ed9\u4f60\u4e2a\u4f8b\u5b50\u770b\u770b
#include
#include
using namespace std;
const double d1 = 1.23456789;
const double d2 = 12.3456789;
const double d3 = 123.456789;
const double d4 = 1234.56789;
const double d5 = 12345.6789;
const long l1 = 16;
const long l2 = 256;
const long l3 = 1024;
const long l4 = 4096;
const long l5 = 65536;
int base = 10;
void DisplayDefault( )
{
cout << endl << "default display" << endl;
cout << "d1 = " << d1 << endl;
cout << "d2 = " << d2 << endl;
cout << "d3 = " << d3 << endl;
cout << "d4 = " << d4 << endl;
cout << "d5 = " << d5 << endl;
}
void DisplayWidth( int n )
{
cout << endl << "fixed width display set to " << n << ".\n";
cout << "d1 = " << setw(n) << d1 << endl;
cout << "d2 = " << setw(n) << d2 << endl;
cout << "d3 = " << setw(n) << d3 << endl;
cout << "d4 = " << setw(n) << d4 << endl;
cout << "d5 = " << setw(n) << d5 << endl;
}
void DisplayLongs( )
{
cout << setbase(10);
cout << endl << "setbase(" << base << ")" << endl;
cout << setbase(base);
cout << "l1 = " << l1 << endl;
cout << "l2 = " << l2 << endl;
cout << "l3 = " << l3 << endl;
cout << "l4 = " << l4 << endl;
cout << "l5 = " << l5 << endl;
}
int main( int argc, char* argv[] )
{
DisplayDefault( );
cout << endl << "setprecision(" << 3 << ")" << setprecision(3);
DisplayDefault( );
cout << endl << "setprecision(" << 12 << ")" << setprecision(12);
DisplayDefault( );
cout << setiosflags(ios_base::scientific);
cout << endl << "setiosflags(" << ios_base::scientific << ")";
DisplayDefault( );
cout << resetiosflags(ios_base::scientific);
cout << endl << "resetiosflags(" << ios_base::scientific << ")";
DisplayDefault( );
cout << endl << "setfill('" << 'S' << "')" << setfill('S');
DisplayWidth(15);
DisplayDefault( );
cout << endl << "setfill('" << ' ' << "')" << setfill(' ');
DisplayWidth(15);
DisplayDefault( );
cout << endl << "setprecision(" << 8 << ")" << setprecision(8);
DisplayWidth(10);
DisplayDefault( );
base = 16;
DisplayLongs( );
base = 8;
DisplayLongs( );
base = 10;
DisplayLongs( );
return 0;
}


--------------------------------------------------------------------------------

default display
d1 = 1.23457
d2 = 12.3457
d3 = 123.457
d4 = 1234.57
d5 = 12345.7

setprecision(3)
default display
d1 = 1.23
d2 = 12.3
d3 = 123
d4 = 1.23e+003
d5 = 1.23e+004

setprecision(12)
default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789

setiosflags(4096)
default display
d1 = 1.234567890000e+000
d2 = 1.234567890000e+001
d3 = 1.234567890000e+002
d4 = 1.234567890000e+003
d5 = 1.234567890000e+004

resetiosflags(4096)
default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789

setfill('S')
fixed width display set to 15.
d1 = SSSSS1.23456789
d2 = SSSSS12.3456789
d3 = SSSSS123.456789
d4 = SSSSS1234.56789
d5 = SSSSS12345.6789

default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789

setfill(' ')
fixed width display set to 15.
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789

default display
d1 = 1.23456789
d2 = 12.3456789
d3 = 123.456789
d4 = 1234.56789
d5 = 12345.6789

setprecision(8)
fixed width display set to 10.
d1 = 1.2345679
d2 = 12.345679
d3 = 123.45679
d4 = 1234.5679
d5 = 12345.679

default display
d1 = 1.2345679
d2 = 12.345679
d3 = 123.45679
d4 = 1234.5679
d5 = 12345.679

setbase(16)
l1 = 10
l2 = 100
l3 = 400
l4 = 1000
l5 = 10000

setbase(8)
l1 = 20
l2 = 400
l3 = 2000
l4 = 10000
l5 = 200000

setbase(10)
l1 = 16
l2 = 256
l3 = 1024
l4 = 4096
l5 = 65536
\u8bf7\u6309\u4efb\u610f\u952e\u7ee7\u7eed. . .

C++ \u6807\u51c6\u8f93\u51fa\u5982\u4f55\u63a7\u5236\u5c0f\u6570\u70b9\u540e\u4f4d #include #include using namespace std;int main( void ){const double value = 12.3456789; cout << value << endl;
// \u9ed8\u8ba4\u4ee56\u7cbe\u5ea6\uff0c\u6240\u4ee5\u8f93\u51fa\u4e3a 12.3457cout << setprecision(4) << value << endl; // \u6539\u62104\u7cbe\u5ea6\uff0c\u6240\u4ee5\u8f93\u51fa\u4e3a12.35cout << setprecision(8) << value << endl; // \u6539\u62108\u7cbe\u5ea6\uff0c
\u6240\u4ee5\u8f93\u51fa\u4e3a12.345679cout << fixed << setprecision(4) << value << endl; // \u52a0\u4e86fixed\u610f\u5473\u7740\u662f\u56fa\u5b9a\u70b9\u65b9\u5f0f\u663e\u793a\uff0c\u6240\u4ee5\u8fd9\u91cc\u7684\u7cbe\u5ea6\u6307\u7684\u662f\u5c0f\u6570\u4f4d\uff0c\u8f93\u51fa\u4e3a12.3457cout << value << endl;
// fixed\u548csetprecision\u7684\u4f5c\u7528\u8fd8\u5728\uff0c\u4f9d\u7136\u663e\u793a12.3457cout.unsetf( ios::fixed ); // \u53bb\u6389\u4e86fixed\uff0c
\u6240\u4ee5\u7cbe\u5ea6\u6062\u590d\u6210\u6574\u4e2a\u6570\u503c\u7684\u6709\u6548\u4f4d\u6570\uff0c\u663e\u793a\u4e3a12.35cout << value << endl;cout.precision( 6 ); // \u6062\u590d\u6210\u539f\u6765\u7684\u6837\u5b50\uff0c\u8f93\u51fa\u4e3a12.3457cout << value << endl;}

\u62d3\u5c55\u8d44\u6599\u53ef\u4ee5\u5728\u8f93\u51fa\u7684\u65f6\u5019\u9650\u5236\u5c0f\u6570\u70b9\u4f4d\u6570\u3002\u5f53\u8f93\u51fa\u5355\u7cbe\u5ea6\u6d6e\u70b9\u578bfloat\u53d8\u91cff\u65f6\uff0c\u53ef\u4ee5\u7528printf("%.2f", f);\u6765\u4f7f\u8f93\u51fa\u7ed3\u679c\u4fdd\u7559\u4e24\u4f4d\u6709\u6548\u6570\u5b57\u30022\u5c31\u662f\u4ee3\u8868\u4fdd\u7559\u4e24\u4f4d\uff0c\u5982\u679c\u8981\u4fdd\u7559\u4e09\u4f4d\u5c31\u662f%.3f\u3002\u7528%.0f\u5c31\u662f\u53ea\u8f93\u51fa\u6574\u6570\u3002

cout<<setiosflags(ios::fixed)<<setprecision(2);//需要头文件#include <iomanip>

然后再输出实数类型变量即可以保留2位小数输出了,当然你要保留三位小数,setprecision(3)就行。

setprecision是指设置输出精度,当没有

cout<<setiosflags(ios::fixed)

时,输出格式是数据的有效位数,例如

float a = 123.666;
cout<<setprecision(5)<<a;

将输出123.67(注意这里,它会四舍五入)。

拓展资料

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。[2] 

参考:C++-百度百科




  1. 打开dev c++,创建一个源代码窗口

2. 输入一段代码。这段代码的意思是,输入一个类型为浮点数的数值。输出一个浮点数

3. 运行,结果如下。此时结果不止两位小数。

4. 于是需要对printf的代码进行修改,如下图

5. 然后在调试运行,即可只保留两位小数。

扩展资料

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。

20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。

在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。

参考资料:百度百科-C++



  1. 用C语言的方法:

输入printf("%5.2f",a),其中5表示宽度,2就是精度,即保留两位小数。

2.设置小数位数法:

cout<<setiosflags(ios::fixed)<<setprecision(2);
当setiosflags(ios::fixed)和serprecision(n)两个一起用时就表示保留n位小数输出。这里还要注意,每次输出只要设置一次就行了,因为这两个的作用范围是后续对象,而不是仅对后一个对象起作用。



拓展资料:

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。



有两种方法可以做到保留两位小数。


1 使用cout输出。

cout是C++的标准输出流,在iomanip头文件中有对其进行格式操作的函数。

其中setiosflags(ios::fixed)可以设置以浮点数形式输出,setprecision函数可以设置精度。

于是保留两位小数输出的程序可以写成:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float v = 1.54321;
cout<<setiosflags(ios::fixed);//设置输入浮点形式
cout.precision(2);   //设置两位有效数字
cout << v << endl; //输出并换行
return 0;
}


2 使用printf。

C++完整兼容C语言,所以同样可以使用C的输出函数printf。

在输出精度控制上C的printf更为简单,但需要根据数据类型调整输出格式字符。

对于float可以用%.2f, 而double则需要用%.2lf。

以float为例,代码如下:

#include<cstdio>//printf所在头文件
using namespace std;
int main()
{
float v = 1.54321;
printf(“%.2f
”, v);
return 0;
}


以上两个示例程序均输出:

1.54



#include<stdio.h>int main(){ double pi=3.1415926; printf("%.2lf",pi);//如果是3位,把2改成3,以此类推

}

  • 鎬庝箞鐢c璇█璁╀竴涓暟淇濈暀2浣灏忔暟
    绛旓細瑕佷繚鐣欎竴涓暟鐨勪袱浣嶅皬鏁帮紝鍙互鍦╬rintf鍑芥暟涓娇鐢ㄢ%.2f鈥濈殑鏍煎紡瀛楃涓层傝繖閲岀殑鈥.2鈥濊〃绀鸿緭鍑烘诞鐐规暟鏃朵繚鐣欎袱浣嶅皬鏁銆備緥濡傦細c float num = 3.14159;printf; // 杈撳嚭缁撴灉涓猴細3.14 鍦ㄨ繖涓緥瀛愪腑锛屸%.2f鈥濆憡璇夌紪璇戝櫒灏唍um鍙橀噺浠ヤ繚鐣欎袱浣嶅皬鏁扮殑褰㈠紡杈撳嚭銆備笁銆佺悊瑙f诞鐐规暟鐨勭簿搴﹂棶棰 闇瑕佹敞鎰忕殑鏄紝...
  • c璇█涓庝箞淇濈暀灏忔暟2浣
    绛旓細鍦–璇█涓紝鍙互浣跨敤printf鍑芥暟鐨勬牸寮忓寲杈撳嚭鍔熻兘鏉ヤ繚鐣欏皬鏁板悗涓や綅銆備緥濡傦細printf銆傝繖鏍疯緭鍑虹殑娴偣鏁颁細淇濈暀涓や綅灏忔暟銆傝缁嗚В閲婏細1. 鏍煎紡鍖栬緭鍑猴細鍦–璇█涓紝printf鍑芥暟鐢ㄤ簬鏍煎紡鍖栬緭鍑恒傝繖鎰忓懗鐫浣犲彲浠ユ寚瀹氳緭鍑虹殑鏍煎紡锛屽寘鎷暣鏁般佹诞鐐规暟绛夌殑鏁版嵁绫诲瀷鍜屾樉绀烘柟寮忋傚浜庢诞鐐规暟锛屽彲浠ヤ娇鐢ㄧ壒瀹氱殑鏍煎紡鎺у埗绗︽潵淇濈暀灏忔暟浣...
  • C璇█涓鎬庢牱淇濈暀2浣灏忔暟?
    绛旓細c璇█淇濈暀2浣嶅皬鏁板彲鐢%.2f瀛楃銆俢璇█淇濈暀涓や綅灏忔暟鍙敤%.2f瀛楃锛岀粨鏋滃氨鑳借緭鍑轰袱浣嶅皬鏁帮紝璁板繂鏂规硶锛氱偣.鍚庨潰涓涓2锛岃〃绀哄皬鏁扮偣鍚庝繚鐣欎袱浣嶃俢璇█涔婥++淇濈暀涓や綅灏忔暟浠g爜锛氱涓绉嶅啓娉昪out<<setiosflags(ios::fixed)<<setprecision(2);绗簩绉嶅啓娉昪out.setf(ios::fixed);cout<<setprecision(2);绗笁绉嶅啓娉昪...
  • c璇█鎬庝箞淇濈暀涓や綅灏忔暟
    绛旓細C璇█淇濈暀涓や綅灏忔暟鐨勬柟娉曞涓嬶細宸ュ叿/鏉愭枡锛氳仈鎯崇數鑴戝ぉ閫510S銆乄indows10銆乂C++6.0銆1銆佹墦寮VC++6.0杞欢锛岀偣鍑诲乏涓婅鐨勬柊寤烘枃浠躲2銆佹柊寤虹殑鏂囦欢涓紪鍐欎笅绋嬪簭#include<stdio.h>int main(){ float a,b; a=1.123456; b=2.324855; printf("%lf,%lf\n",a,b); return 0;}銆3銆佺紪鍐欏畬涔嬪悗锛...
  • c璇█涓濡備綍淇濈暀涓や綅灏忔暟?
    绛旓細鐢–璇█鐨勬柟娉曪細杈撳叆printf("%5.2f",a)锛屽叾涓5琛ㄧず瀹藉害锛2灏辨槸绮惧害锛屽嵆淇濈暀涓や綅灏忔暟銆2.璁剧疆灏忔暟浣嶆暟娉曪細cout<<setiosflags(ios::fixed)<<setprecision(2);褰搒etiosflags(ios::fixed)鍜宻erprecision(n)涓や釜涓璧风敤鏃跺氨琛ㄧず淇濈暀n浣嶅皬鏁拌緭鍑恒傝繖閲岃繕瑕佹敞鎰忥紝姣忔杈撳嚭鍙璁剧疆涓娆″氨琛屼簡锛屽洜涓鸿繖涓や釜鐨...
  • c璇█鎬庢牱淇濈暀涓や綅灏忔暟?
    绛旓細閭d箞闇瑕佽緭鍑哄唴瀹淇濈暀灏忔暟锛屽疄闄呬笂鍙互瀵规诞鐐瑰瀷杩涜璁剧疆鐨勩1銆侀鍏堟墦寮IDE锛屾帴鐫淇濆瓨main.c鏂囦欢銆2銆佽繖涓椂鍊欐妸鍐呭杈撳嚭锛岃缃诞鐐瑰瀷銆備篃灏辨槸%f銆3銆佷絾鏄緭鍑虹殑鏃跺欓粯璁ゆ湁澶氫綅灏忔暟銆4銆佽繖鏃跺彲浠ヨ缃%.2f锛屼篃灏辨槸涓や綅鏁帮紝鍥犱负鎴戜滑鍐欎簡2銆5銆佽繖涓椂鍊欐墽琛屼唬鐮佺殑鏃跺欏氨浼氱湅鍒板彧鏈涓や綅灏忔暟浜嗐
  • c璇█涓庝箞淇濈暀灏忔暟2浣
    绛旓細1.鎵撳紑缂栬瘧杞欢锛屽涓嬪浘 2.鏂板缓绫伙紝缂栧啓浠g爜锛屽涓嬪浘 3.鐐瑰嚮杩愯浠g爜锛屽涓嬪浘锛4.鏌ョ湅杈撳嚭缁撴灉锛屽彧鏈涓や綅灏忔暟锛屽涓嬪浘 5.濡傛灉鎯宠淇濈暀涓変綅灏忔暟锛屽彧瑕佹妸print("%.2f",num);涓殑2鏀规垚涓夊氨琛岋紝濡備笅鍥
  • c璇█濡備綍淇濈暀涓や綅灏忔暟
    绛旓細c璇█淇濈暀涓や綅灏忔暟鐨勬柟娉曞涓嬶細1銆佹墦寮devc鍔犲姞锛屽垱寤轰竴涓簮浠g爜绐楀彛銆2銆佽緭鍏ヤ竴娈典唬鐮併傝繖娈典唬鐮佺殑鎰忔濇槸锛氳緭鍏ヤ竴涓被鍨嬩负娴偣鏁扮殑鏁板硷紝杈撳嚭涓涓诞鐐规暟銆3銆佺劧鍚庤繍琛屻4銆佹帴鐫瀵筽rintf鐨勪唬鐮佽繘琛屼慨鏀广5銆佺劧鍚庡湪璋冭瘯杩愯锛屽嵆鍙彧淇濈暀涓や綅灏忔暟銆
  • c璇█濡備綍璁╄緭鍑虹粨鏋滅簿纭埌涓や綅灏忔暟
    绛旓細double a=2.0;printf ("%.2f", a);//鍏朵腑.2鎸囨槑涓や綅灏忔暟 璇存槑锛氬%9.2f 琛ㄧず杈撳嚭鍦哄涓9鐨勬诞鐐规暟, 鍏朵腑灏忔暟浣嶄负2, 鏁存暟浣嶄负6锛屽鏋9缂虹渷鍒欏満瀹戒负璇ユ暟瀹為檯浣嶆暟 瑙勫畾绗 d 鍗佽繘鍒舵湁绗﹀彿鏁存暟 u 鍗佽繘鍒舵棤绗﹀彿鏁存暟 f 娴偣鏁 s 瀛楃涓 c 鍗曚釜瀛楃 p 鎸囬拡鐨勫 e 鎸囨暟褰㈠紡鐨勬诞鐐规暟 x, ...
  • C璇█璁$畻鍑虹殑缁撴灉涓庝箞淇濈暀灏忔暟鐐瑰悗涓や綅?
    绛旓細鍙互鐢╘x0d\x0aprintf("%.2f", f);\x0d\x0a鏉ヤ娇杈撳嚭缁撴灉淇濈暀涓や綅鏈夋晥鏁板瓧銆傚叾涓.2灏辨槸浠h〃淇濈暀涓や綅锛屽鏋滆淇濈暀涓変綅灏辨槸%.3f銆傜敤%.0f灏辨槸鍙緭鍑烘暣鏁般俓x0d\x0a\x0d\x0a濡傛灉鏄弻绮惧害娴偣鏁癲ouble锛屽氨闇瑕佺敤%.2lf鏉ヤ娇杈撳嚭缁撴灉淇濈暀2浣灏忔暟銆
  • 扩展阅读:c++输出保留两位小数 ... c++怎么取小数点后两位 ... c++反向输出一个三位数 ... python四舍五入保留两位小数 ... c++怎么保留小数 ... c++中保留小数点后三位 ... c++输出时保留小数 ... c++小数点后保留两位 ... c++如何保留小数点后一位 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网