Achain-Dev / contract

Achain Contract
10 stars 3 forks source link

add_num = (temp_balance + 1/(decimals*1000)) * decimals 这句话有什么用? #6

Open JustinQP opened 6 years ago

JustinQP commented 6 years ago

local function check_and_return_balance(balance:string,decimals:int) local temp_balance:number = tonumber(balance) if temp_balance == nil or temp_balance <= 0 then return 0 end local add_num = (temp_balance + 1/(decimals1000)) decimals return tointeger(add_num) end 合约检测余额的这个语句,完全看不懂,有什么意义?

RayAchain commented 6 years ago

lua浮点数转换整型时,会有精度不对的问题 比如 3 浮点数表示是2.9999999999999999999 转整型后就变成2了。 加个0.0000001后,具体数值是3.000000010999就忽略了浮点数精度影响。