C#的String轉換成float防止精度丟失問題的解決
更新時間:2023年07月12日 09:30:07 作者:蒼狼王unity學院
這篇文章主要介紹了C#的String轉換成float防止精度丟失問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
C#的String轉換成float防止精度丟失
精度問題
float x = float.Parse(s);
在提交小數(shù)的時候會出現(xiàn)精度丟失問題,
舉個例子:
unity中的Position中的x,y,z為2.073282,-1.106536,轉換成float肯定會丟失值
float
:浮點型,含字節(jié)數(shù)為4,32bit,數(shù)值范圍為-3.4E38~3.4E38(7個有效位)double
:雙精度實型,含字節(jié)數(shù)為8,64bit數(shù)值范圍-1.7E308~1.7E308(15個有效位)decimal
:數(shù)字型,128bit,28個有效位 float 與計算機中數(shù)值表示方法有關,不是準確數(shù)據(jù). decimal 是準確數(shù)據(jù),不會出現(xiàn)這個問題
解決辦法
Unity C# String轉Float
//方法1 float f1 = Convert.ToSingle(s); //方法2 float f2; if (!float.TryParse(s, out f2)) { Console.WriteLine("無法轉換!"); }
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
C# Dictionary和SortedDictionary的簡介
今天小編就為大家分享一篇關于C# Dictionary和SortedDictionary的簡介,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10