C#的String轉(zhuǎn)換成float防止精度丟失問題的解決
更新時間:2023年07月12日 09:30:07 作者:蒼狼王unity學(xué)院
這篇文章主要介紹了C#的String轉(zhuǎn)換成float防止精度丟失問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
C#的String轉(zhuǎn)換成float防止精度丟失
精度問題
float x = float.Parse(s);
在提交小數(shù)的時候會出現(xiàn)精度丟失問題,
舉個例子:
unity中的Position中的x,y,z為2.073282,-1.106536,轉(zhuǎn)換成float肯定會丟失值
float:浮點(diǎn)型,含字節(jié)數(shù)為4,32bit,數(shù)值范圍為-3.4E38~3.4E38(7個有效位)double:雙精度實(shí)型,含字節(jié)數(shù)為8,64bit數(shù)值范圍-1.7E308~1.7E308(15個有效位)decimal:數(shù)字型,128bit,28個有效位 float 與計(jì)算機(jī)中數(shù)值表示方法有關(guān),不是準(zhǔn)確數(shù)據(jù). decimal 是準(zhǔn)確數(shù)據(jù),不會出現(xiàn)這個問題
解決辦法

Unity C# String轉(zhuǎn)Float
//方法1
float f1 = Convert.ToSingle(s);
//方法2
float f2;
if (!float.TryParse(s, out f2))
{
Console.WriteLine("無法轉(zhuǎn)換!");
}總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)XSL轉(zhuǎn)換的方法
這篇文章主要介紹了C#實(shí)現(xiàn)XSL轉(zhuǎn)換的方法,結(jié)合實(shí)例分析了C#執(zhí)行XSL轉(zhuǎn)換XML的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
C# Dictionary和SortedDictionary的簡介
今天小編就為大家分享一篇關(guān)于C# Dictionary和SortedDictionary的簡介,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
C#啟動和停止windows服務(wù)的實(shí)例代碼
這篇文章介紹了C#啟動和停止windows服務(wù)的實(shí)例代碼,有需要的朋友可以參考一下2013-09-09
C#中利用斷點(diǎn)操作調(diào)試程序的步驟詳解
所謂斷點(diǎn)調(diào)試就是檢測執(zhí)行路徑和數(shù)據(jù)是否正確,中斷游戲運(yùn)行在線調(diào)試,下面這篇文章主要給大家介紹了關(guān)于C#中利用斷點(diǎn)操作調(diào)試程序的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12

