tft每日頭條

 > 科技

 > c語言double和float誰大

c語言double和float誰大

科技 更新时间:2024-11-27 14:35:12

為了表示浮點數,我們使用floatdoublelong double有什麼不同 ?

c語言double和float誰大(CC編程筆記)1

double的精度是float的2

float是32位IEEE 754單精度浮點數1位符号,(8位為指數,23 *為值),即float具有7位十進制數字精度。

double是64位的IEEE 754雙精度浮點數(符号1位,指數11位,值52 *位),即double具有15位十進制數字的精度。

c語言double和float誰大(CC編程筆記)2

讓我們舉個例子:

對于二次方程x2 – 4.0000000 x 3.9999999 = 0,精确到10個有效數字的根是r1 = 2.000316228和r2 = 1.999683772

// C program to demonstrate // double and float precision values #include <stdio.h> #include <math.h> // utility function which calculate roots of // quadratic equation using double values voiddouble_solve(doublea, doubleb, doublec){ doubled = b*b - 4.0*a*c; doublesd = sqrt(d); doubler1 = (-b sd) / (2.0*a); doubler2 = (-b - sd) / (2.0*a); printf("%.5f\t%.5f\n", r1, r2); } // utility function which calculate roots of // quadratic equation using float values voidfloat_solve(floata, floatb, floatc){ floatd = b*b - 4.0f*a*c; floatsd = sqrtf(d); floatr1 = (-b sd) / (2.0f*a); floatr2 = (-b - sd) / (2.0f*a); printf("%.5f\t%.5f\n", r1, r2); } // driver program intmain(){ floatfa = 1.0f; floatfb = -4.0000000f; floatfc = 3.9999999f; doubleda = 1.0; doubledb = -4.0000000; doubledc = 3.9999999; printf("roots of equation x2 - 4.0000000 x 3.9999999 = 0 are : \n"); printf("for float values: \n"); float_solve(fa, fb, fc); printf("for double values: \n"); double_solve(da, db, dc); return0; }

輸出:

roots of equation x2 - 4.0000000 x 3.9999999 = 0 are ::

for float values: 2.00000 2.00000

for double values: : 2.00032 1.99968

通過以上實例,你掌握了這兩個數據類型的不同之處了嗎?希望對你有幫助哦~

另外如果你想更好地提升你的編程能力,學好C語言C 編程!彎道超車,快人一步!

編程學習書籍分享:

c語言double和float誰大(CC編程筆記)3

編程學習視頻分享:

c語言double和float誰大(CC編程筆記)4

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比自己琢磨更快哦!

C語言C 編程學習交流圈子,點擊下方【了解更多】獲取更多學習資料幫助你學習成長哦~

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved