iOS 乙個double精度導致的bug

2021-08-03 06:58:54 字數 921 閱讀 1710

1、先看下問題:

**裡面接受來自api返回的double型的資料,方式如下:

[objc]view plain

copy

itemcell

.pricelabel

.text

= [nsstring

stringwithformat

:@"¥%@"

, @(item

.ticketgroup

.bestprice

)];  

結果api傳過來89.9時,label顯示結果如下:

2、%f,%e,%g的區別:

%@,不做型別轉換,資料原來是什麼型別,它就會原封不動的將它包裝成物件。那麼我們來看看,這是什麼原因導致了,這種bug。

看到上面的對比,你就該知道,%f遇到有些double資料會「失真」,此時不能再用%f處理了。%e是指數形式,%g是選用%f%e中較短的一種形式輸出。所以,此時建議採取

%g,**如下:

[objc]view plain

copy

itemcell

.pricelabel

.text

= [nsstring

stringwithformat

:@"¥%g"

, item

.ticketgroup

.bestprice

];  

乙個精度題。。。

首先肯定想到二分。然而j精度問題。那就看你自己的造化了。二分得出乙個每個人的 步長 然後再列舉 來一次二分就可以了 其實直接算就好了 include include include include include include include include include include inc...

Calendar 導致的乙個bug

查詢不到資料。把calendar生成的date通過gettime 列印出時間戳。因為資料庫裡的資料是每天生成的,所以對應的時間毫秒為0,而calendar生成的時間沒有對毫秒進行set值覆蓋,導致使用到了當前時間的毫秒值。此時由於查詢條件是 導致這部分資料被忽略掉了。由於 calendar.geti...

memset 導致的乙個段錯誤

原型 void memset void s,int c,size t n 解釋 memset 是 逐字節 拷貝,即n是指整個變數所佔位元組,在用於陣列時一定要注意n不一定是 陣列元素.memset 用來給某一塊記憶體空間進行賦值的.段錯誤之處 對於所賦值的變數,如果不定義,如何來空間,隨機空間?所以...