1樓:
這個問題比較有趣。
我們先貼一段 scanf 對於浮點處理的原始碼(來自scanf.c,minix核心原始碼(引用自cnblogs))
#ifndef NOFLOAT
long
double
ld_val
;#endif
預設將所有浮點型用 Lf 來儲存,可以保證所有精度。
#ifndef NOFLOAT
case
'e':
case
'E':
case
'f':
case
'g':
case
'G':if(
!(flags
&FL_WIDTHSPEC)||
width
>NUMLEN
)width
=NUMLEN;if
(!width
)return
done
;str
=f_collect(ic
,stream
,width
);if
(str
str== inp_buf&&( *str =='-'||* str== '+'))) return done;/* Although the length of the number is str-inp_buf+1 we don't add the 1 since we counted it already nrchars +=str -inp_buf;if (!(flags &FL_NOASSIGN ))break ;#endif 我們可以發現,賦值是由最後乙個 if 實現的。 例如 *va_arg(ap, float *) = (float) ld_val; 是對浮點型的賦值。 因為位址在同PC上大小固定,所以實際上賦值左元 *va_arg(ap, float *) 、 *va_arg(ap, double *) 、和 *va_arg(ap, long double *) 沒有任何區別,僅有的區別就是賦值右元的強制轉換過程。 因為有 FLT_MAX 3.402823466e+38F 和 DBL_MAX 1.7976931348623158e+308 ,所以我們可以知道 float 的精度要遠低於 double,而強轉可能會損失精度。 而 float 的記憶體是這樣的: 因此我們可以知道: 如果scanf的格式指示符是%f,賦給乙個double型的變數: 當輸入值在 float 表示範圍內且為非負時,不會有任何差別。 當輸入值在 float 表示範圍外且為非負時,會損失變數的 0xFFFFFFFF00000000 中的所有非零位的內容; 當輸入值為負值時。。。自求多福吧,float的符號位在 double 裡面是尾數字的區段,會讓資料變得很詭譎,而且,0xFFFFFFFF00000000 的所有內容也全部丟失,也就是保持原樣。 Shark 我認為這是乙個不合理的想法 因為你玩遊戲的時候也得眨眼,而遊戲如果自帶眨眼效果那就是兩個人的視野,並不是你乙個人的視野。如果遊戲眨眼一次0.5s,你眨眼0.3s,如果又碰巧兩次眨眼無縫銜接,那麼就有將近1s的盲視時間,極大降低遊戲體驗。所以這種假設會影響遊戲體驗。來自人本身的需要眨眼。 ... 安安安啦 很不正常,男的應該想婚外戀,搞曖昧,狩獵你,吃著碗裡看著鍋裡,想你做他的 彩旗 畢竟,面對有夫之婦的這個女人,他不用負責 老實人寧死不接盤 我想你既然問這個問題,多半不是故事裡的人。正常不正常其實不好講,弄明白原因很重要,原因決定了是否正常。如果你是轉錢方家屬,要考慮你家男人和那個女人的關... 用來觀學術 師者,傳道受業解惑也,而知乎的存在可以將老師集合在一塊,伸手族是啥,是學生嗎,看的書從書中獲取知識也是伸手族,伸手族就算有定義,也不是這樣的定義,講廢話的存在 簡單來說,T檢驗或F檢驗,就是做一次實驗,這次試驗的結果應該落在T分布或F分布的主要區間內。如果落在邊緣,那麼這種可能性應該很小...如果給CS GO新增乙個閉眼0 5秒的操作是否會影響遊戲平衡還是增加了遊戲性
如果乙個男人老給乙個女人發紅包,(前提是男人女人都有自己的家庭),這正常嗎?
統計學的T檢驗 F檢驗 和T分布 F分布是乙個概念嗎,怎麼理解呢?