![](/img/trans.png)
[英]How to convert a PNG image to grayscale and without losing the transparency C#
[英]How to convert the double value to string without losing the data in c#
我有一個雙值如下
double propertyValue = 1994.7755474452554;
當我將此雙精度值轉換為字符串時
string value = propertyValue.ToString();
它給出值"1994.77554744526"
它已將最后一位數字2554
舍入為26
。
但我不想舍入該值。 分享您的想法。
默認情況下,Double 的 .ToString() 方法返回 15 位精度。 如果您想要 double 值在內部保存的完整 17 位數字,則需要將“G17”格式說明符傳遞給該方法。
String s = value.ToString("G17");
這將防止在轉換為字符串時四舍五入雙精度值。
value = propertyValue.ToString("G17");
您可以改用十進制類型。
decimal propertyValue = 1994.7755474452554M;
我無法重現這種不當行為; 你已經體驗過一種表示效果:它是ToString()
puts double
那樣。
string source = "1994.7755474452554";
double d = double.Parse(source, CultureInfo.InvariantCulture);
string test = d.ToString("R", CultureInfo.InvariantCulture);
Console.Write(source.Equals(test) ? "OK" : "Rounded !!!");
結果還OK
。 請注意"R"
格式字符串:
往返(“R”)格式說明符
https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#RFormatString
您可以將double
為decimal
並使用默認的ToString()
如下所示:
Double propertyValue = 1994.77554744526;
var str = ((decimal)propertyValue).ToString();
//str will hold 1994.77554744526
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.