iT邦幫忙

1

如何將科學記號轉回數值

假設我資料本身為float : 10153510
但因過長所以存到資料庫時存成科學記號 : 1.015351E+07

假設在不改變存取到資料庫的方式,想詢問如何將1.015351E+07轉為10153510在畫面上做顯示呢?

目前有上網嘗試了一些方法,但都無法達成 :
a.ToString("F")
string.Format("{0:n}", a);

anniecat iT邦新手 3 級 ‧ 2020-07-22 14:08:51 檢舉
謝謝樓下大家的幫忙,我就選擇我後來選擇的實作方式為最佳答案了,感謝!
3
通靈亡
iT邦研究生 5 級 ‧ 2020-07-22 11:44:43
最佳解答

float先用ToString()轉文字再放到double.Parse()

using System;
					
public class Program
{
	public static void Main()
	{
		float number = 1.015351E+07F;
		Console.WriteLine(double.Parse(number.ToString(), CultureInfo.InvariantCulture));
	}
}
anniecat iT邦新手 3 級 ‧ 2020-07-22 14:07:49 檢舉

謝謝您,實作後可達成目標~

2
glj8989332
iT邦新手 2 級 ‧ 2020-07-22 11:48:49

原PO的是讀字串轉數字, 所以可以這樣寫

decimal d = decimal.Parse("1.015351E+07", System.Globalization.NumberStyles.AllowExponent | System.Globalization.NumberStyles.AllowDecimalPoint);
Console.WriteLine(d);
anniecat iT邦新手 3 級 ‧ 2020-07-22 14:07:37 檢舉

謝謝您的幫忙,不過會有錯誤訊息 :
最符合的多載方法 'decimal.Parse(string, System.Globalization.NumberStyles)' 有一些無效的引數

這是正常可行的
https://dotnetfiddle.net/7RNpyc
不確定是不是你打錯程式碼...

2
listennn08
iT邦高手 9 級 ‧ 2020-07-22 11:49:40

只是要顯示的話

System.Convert.ToDouble(a).ToString()
anniecat iT邦新手 3 級 ‧ 2020-07-22 14:06:55 檢舉

謝謝您,實作後可達成目標~

1
rty754623
iT邦見習生 ‧ 2020-07-22 12:30:52

謝謝樓上分享~

1
draco
iT邦見習生 ‧ 2020-07-22 13:45:52

感謝大大分享,收穫良多!!!

我要發表回答

立即登入回答