從printf說開去(一)
看到csdn上的一篇熱帖,printf(“%f”, 10/3);輸出結果是什麼?答案可能讓很多人都大吃一驚。於是乎大家自己寫程式碼來輸出測試,有的說是0.000000,有的說是自己測試的結果是每次輸出都不同。
更準確一點的結論應該是輸出結果不確定。上面提到的2個測試結果都是可能存在的。也有很多朋友在論壇上回帖,說討論這個問題沒有任何意義,寫成printf(“%f”, 10.0/3)之類的不就可以正確執行了嗎?
本文試圖綜合幾個角度來探討這個問題,並且也會舉出實際的使用案例。
為了增加一點趣味性,讓整個分析過程不枯燥,我先從這裡開始:
將程式碼中的輸出語句改成:
試試看,會得到什麼結果?(未完待續)
相關推薦
從printf說開去(一)
看到csdn上的一篇熱帖,printf(“%f”, 10/3);輸出結果是什麼?答案可能讓很多人都大吃一驚。於是乎大家自己寫程式碼來輸出測試,有的說是0.000000,有的說是自己測試的結果是每次輸出都不同。 更準確一點的結論應該是輸出結果不確定。上面提到的2個測試結果都是可能
從附加資料Overlay說開去-記一次討論
今天和兩個小夥伴討論了幾個問題,我對問題的回答和討論作以記錄.方便後來者學習. 怎麼判斷一個程式是否有附加資料呢? 人物: Kitty,柱子,琦哥 開始 柱子:怎麼判斷一個程式是否有附
從一次python程式的效能優化說開去
一門程式語言入門是容易的,至少大家都知道從hello world開始。但這次效能優化的經歷告訴我,“換語言”這件事是有門檻的。 這次效能優化是針對資料入庫流程中的一個環節(brief)做的。 我們常說解決問題重要,發現問題更重要。沒錯,這次發現問題就佔用了我
從printf說開去(四)
(接上文) 對於函式: float sumfunf(int num, …) { char* args = (char*)(&num)+sizeof(num); double result = 0; for(int n = 0;
從printf說開去(三)
(接上回) 我們在C/C++程式碼中使用: printf(“%f”, 10/3, 0×40080000 ); 看到執行結果了嗎?為什麼這行看起來不合乎所謂的語法的printf能輸出3.000000呢?
從MySQL slave system lock延遲說開去
本文主要分析 sql thread中system lock出現的原因,但是筆者並明沒有系統的學習過master-slave的程式碼,這也是2018年的一個目標,2018年我都排滿了,悲劇。所以如果有錯誤請指出,也作為一個筆記用於後期學習。同時也給出筆者現在知道的幾種造成延遲的可能和延遲計算的方式
從 Swift 的面向協議程式設計說開去
寫在最前 文章標題談到了面向協議程式設計(下文簡稱 POP),是因為前幾天閱讀了一篇講 Swift 中 POP 的文章。本文會以此為出發點,聊聊相關的概念,比如介面、mixin、組合模式、多繼承等,同時也會藉助各種語言中的例子來闡述我的思想。 那些老生常談的概念,相信每位讀者都耳熟能詳了,我當然不會無聊到浪
從埋頭做事與擡頭看路說開去
我一直在思考自己為什麼該埋頭做事的時候卻擡頭看路,甚至因此我還在回憶自己是否有過無路可走的經歷以及是否被這種經歷搞出心理陰影。結果是都沒有。機會不是每天都有的。注意它有兩個意思:一,不要急,沒有機會的時候耐心等待機會,完善自身。二,要珍惜,到手的機會要好好把握,創造價值。但我發現一個問題,我不太會把握機會。工
從安全、監控與災備說開去,談運維管理防線建設
作者介紹 戰學超,青航資料架構師。曾任職於NEC軟體、海爾B2B平臺鉅商匯,負責企業資料平臺構建、B2B電商平臺數據管理與搭建。擁有豐富DBA、系統運維架構經驗,擅長資料庫、資料平臺搭建、私有云部署、自動化運維等。 在搭建運維管理平臺時,安全是不得不面對的重點模組之一。這裡結合我最近所研究以及我司在
從零開始建網站(一):
出來工作也快兩年了,一直做的是前端工程師的工作,臨近年底,想到現在也是比較空閒,就打算自己建立一個個人網站。這個系列的博文我也是打算一直持續更新下去,記錄下自己建站的一點一滴。 好了,
斐波那契數-從爬樓梯問題說開去
正式講一下斐波那契數: 首先我們知道有一個著名的演算法面試題: 一共有n個臺階,你一次可以走一個臺階,或者兩個臺階。那麼,走到臺階頂時,一共有多少種走法。 比如三個臺階,你可以 1,2。。。或者1,1,1 或者2,1。。一共三種走法。 網路上會有幾種做法
從Python列表Remove操作的一個小問題說開去
一.問題 : 前兩天因工作需要,寫了一個Python小程式, 將某目錄下所有長度小於19的資料夾過濾掉,例如這個這個目錄: 過濾完成後,只需要剩餘“
從《加速VB》說開去
前一段收的網易期刊裡有一篇《加速VB》,我以為切實說到了大多數VB程式設計師的缺點,所以不嫌羅嗦,在這裡先複述一遍。 在此篇裡,主要的一段程式的三種寫法,因為原文被我給誤刪掉了,我只是憑記憶寫出,和原文程式有出入,但大體不錯,首先是作者的朋友的: If Form1.WindowState = vbNormal
從“盜版”說開去
發行了幾年的共享軟體“VB原始碼之友”終於被盜版了,雖然共享軟體沒有給我帶來讓人羨慕的財富,但是這幾年來也有不少的正版使用者群在默默的支援著我繼續推出我的軟體產品。 我的心情其實很複雜,但卻沒有憤怒,在我腦中揮之不去的卻是“盜火”英雄普羅米修斯的偉大形象。想想看
斐波那契數_從樓梯問題說開去
正式講一下斐波那契數: 首先我們知道有一個著名的演算法面試題: 一共有n個臺階,你一次可以走一個臺階,或者兩個臺階。那麼,走到臺階頂時,一共有多少種走法。 比如三個臺階,你可以 1,2。。。或者1,1,1 或者2,1。。一共三種走法。 網路上會有幾種做法, 1.直接思路
從豆瓣說和Backbone.js說開去
簡而言之,Backbone.js是一個可以在前端組織MVC的javascript框架。 寫的Javascript程式碼一旦多起來,沒有一個好的組織,那就會像噩夢一樣。 Backbone提供了Models, Collections, Views。Models 用來建立資料,校
從virtualDOM說開去
我們知道,前端開發的最佳實踐意義包括效能優化,前端的效能優化就包括儘可能的減少DOM操作1.效能 1.1注意作用域 避免全域性查詢完全用 let 代替 var (避免變數宣告提升) const 代替 不可變變數避免 with 語句O(1)
從面試官問“為什麼選擇mysql資料庫”說開去
前幾天面試,面試官問我:“為什麼選擇mysql資料庫”。現在想想,有如下的問題需要解決 關係型資料庫有什麼特點及舉例 非關係型資料庫有什麼特點及舉例 關係型資料庫與非關係型資料庫有什麼區別 關係型資
從宜家廁所前說開去
如果說有這麼一個地方,去逛就是去學習,去消費也是去學習,你去不去? 如果你去,我告訴你,這個地方就是宜家家居大賣場。 對宜家一直有好感,在上海這個地方,能夠給人留下深刻印象的大賣場恐怕只此一家,這讓我對這家來自歐洲的世界五百強企業充滿了敬仰。 時隔一年多了,週末再次被老婆拉去宜家逛了一下午。常去常新。這次收
從合並兩個Map說開去 - foldLeft 和 foldRight 還有模式匹配
pan 開發者 簡化 ase map集合 兩個 簡單 tro 嘗試 開發中遇到需求:合並兩個Map集合對象(將兩個對應Key的值累加) 先說解決方案: ( map1 /: map2 ) { case (map, (k,v)) => map + ( k ->