第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

正常寫完代碼為什么結果是69.400002,這個2怎么來的

正常寫完代碼為什么結果是69.400002,這個2怎么來的

C
qq_林英東_0 2018-02-09 22:18:30
#include <stdio.h>float time(int x){? ? if(x>=23||x>=0&&x<=5)? ? {? ? ? ? float a=1.2;? ? ? ? return a;? ? }? ? else? ? {? ? ? ? int b=1;? ? ? ? return b;? ? }}float kilometre(float y){? ? int begin=13;? ? if(y>3)? ? {? ? ? ? float c=(y-3)*2.3+begin+1;? ? ? ? return c;? ? }? ? else? ? {? ? ? ? int d=begin+1;? ? ? ? return d;? ? }}int main(){? ? float a,b,c,d;? ? a=9;? ? b=12;? ? c=6;? ? d=12;? ? float e=time(a)*kilometre(b)+time(c)*kilometre(d);? ? printf("小明每天打車的總費用是%f\n",e);? ? return 0;}
查看完整描述

2 回答

?
傻圓傻圓

TA貢獻14條經驗 獲得超23個贊

????在計算機存儲數(shù)字的時候是使用的是二進制的形式,存儲整數(shù)一般不會有誤差,但是在存儲小數(shù)的時候就會出現(xiàn)誤差了,對于float類型來說,它的精度并不是很高,在你的程序中你使用到了2.3這個float類型的數(shù)字,你可以試著看一下這行語句的打印結果printf("%.10f", (float)2.3),會發(fā)現(xiàn)打印的結果并不是預期中的2.3000000000這個數(shù)字,而是一個稍微小上一丟丟的數(shù)字。如果使用double類型的話會更好,因為double類型的精度更高,試著看一下這行語句的打印結果printf("%.10lf", (double)2.3),會發(fā)現(xiàn)是預想中的結果2.3000000000,但實際上如果輸出位數(shù)在多一些的話,也會看出來一些誤差。

????總的來說,就是在計算機進行浮點數(shù)的運算時,會涉及到一個精度問題,而你的代碼之所以會打印出來的結果和預期不同,就是因為運算時的誤差,如果想要深入的了解,建議看一下關于計算機中數(shù)字的存儲以及計算相關知識。

查看完整回答
反對 回復 2018-02-09
  • 2 回答
  • 0 關注
  • 1517 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號