julia的浮點(diǎn)數(shù) bits這個(gè)函數(shù)好像沒有了,我xiang給你看下這個(gè)值 的二進(jìn)制表示在最全面的符號(hào)位不同 指數(shù)形式的浮點(diǎn)數(shù) 代碼01行使用f代替e來表示這是一個(gè)Float32類型的值,。代碼03行使用typeof(ans)來判斷上一個(gè)結(jié)果的類型,,結(jié)果為Float32,。代碼05行將Float32與Float64的相同值進(jìn)行比較,結(jié)果為true,。 除此之外,,我們還可以通過一個(gè)函數(shù)將值從Float64轉(zhuǎn)換為Float32。示例代碼如下: 強(qiáng)制轉(zhuǎn)換 值得一提的特殊浮點(diǎn)數(shù)如下: · Inf和?Inf · NaN 當(dāng)一個(gè)數(shù)不是實(shí)數(shù)的時(shí)候,,我們將會(huì)看到特殊浮點(diǎn)數(shù),。 特殊浮點(diǎn)數(shù) 01 julia> 1/0 02 Inf 03 julia> -1/0 04 -Inf 05 julia> 0/0 06 NaN 07 julia> Inf/Inf 08 NaN Inf表示無窮大,?Inf表示無窮小,,NaN表示這不是一個(gè)實(shí)數(shù),。代碼07行使用Inf除以Inf得到的結(jié)果為NaN。 還有一些函數(shù)是十分有用的,。例如,,如果需要找到下一個(gè)浮點(diǎn)數(shù),Julia提供了如下函數(shù)可以幫助我們,。 julia> nextfloat(0.0) 5.0e-324 代碼01行使用了nextfloat()函數(shù),,并傳入一個(gè)Float類型的值,來顯示0.0之后的下一個(gè)浮點(diǎn)數(shù),。同理,,使用如下函數(shù)可以找到上一個(gè)Float類型的值。 以下定義了x和y兩個(gè)變量,,它們的值分別為1.1和0.1,。然后輸出x+y的值,。該值是不準(zhǔn)確的,當(dāng)沒有對(duì)特定數(shù)字進(jìn)行預(yù)期的浮點(diǎn)表示時(shí),,將會(huì)發(fā)生這種情況,。 我們可以使用Julia提供的setprecision()函數(shù)來設(shè)置精度。 這個(gè)范例使用了setprecision()函數(shù),,并傳入一個(gè)數(shù)字,,代碼02行使用BigFloat類型的值來進(jìn)行操作,得到的結(jié)果為1.12,。 任意精度的計(jì)算 前面我們研究了Int和Float類型,。還有兩種特定的數(shù)據(jù)類型可用于任意精度的計(jì)算,它們是: · BigInt · BigFloat 任意精度的計(jì)算是指精度數(shù)字僅受其執(zhí)行系統(tǒng)上的可用內(nèi)存限制的計(jì)算,,這在某種計(jì)算場景中十分有用,。 如下代碼使用了BigFloat。 01 julia> BigFloat("2.99123191231231414314134") 02 2.99123191231231414314133999999999999999999999999999999999 03 9999999999999999999996 04 julia> factorial(BigInt(100)) 05 9332621544394415268169923885626670049071596826438162146859 06 2963895217599993229915608941463976156518286253697920827223 07 758251185210916864000000000000000000000000 08 julia> big(0.2) 09 2.00000000000000011102230246251565404236316680908203125000 10 0000000000000000000000e-01 代碼01行使用了BigFloat()函數(shù),,傳入一個(gè)數(shù)字字符串,,將返回一個(gè)BigFloat的值。代碼02行使用了一階乘函數(shù),,階乘100,,結(jié)果是一個(gè)特別大的數(shù)。代碼08行使用了big函數(shù)(),,它也能返回一個(gè)大數(shù),。 接下來是我最喜歡的特性!!!最喜歡,第一次讓我感受到了寫數(shù)學(xué)表達(dá)式和我的所學(xué)得到統(tǒng)一. 愛死了 |
|