C#科学计数法,有效位数
代码
/// <summary>
/// 有效数取值带科学计数法
/// </summary>
/// <param name="number">浮点值</param>
/// <param name="GYouXiao">有效位数</param>
/// <returns>结果</returns>
public string Significance(double number, int GYouXiao)
{
var A1 = number.ToString("G" + GYouXiao.ToString());
A1 = ScientificNotation(A1, GYouXiao);
if (!A1.Contains("×10")&& A1.Length< GYouXiao) {
if (A1.Contains("."))
{
A1 = A1.PadRight(GYouXiao+1, '0');
}
else
{
A1 = A1 + ".";
A1 = A1.PadRight(GYouXiao+1, '0');
}
}
return A1;
}
/// <summary>
/// 转换科学计数法
/// </summary>
/// <param name="input">输入值</param>
/// <param name="GYouXiao">有效位数</param>
/// <returns>结果</returns>
public static string ScientificNotation(string input,int GYouXiao)
{
if (string.IsNullOrEmpty(input))
return input;
if (!input.ToLower().Contains("e"))
return input;
string[] strs = new string[] {
};
if (input.Contains("E"))
strs = input.Split('E');
else if (input.Contains("e"))
strs = input.Split('e');
if (strs.Length != 2)
return input;
double value;
if (!double.TryParse(strs[0], out value))
return input;
if (strs[1].Length < 2)
return input;
string result2 = strs[1].Replace("+", "").Replace("-", "");
string[] result2Strs = result2.Split('\r');
result2 = result2Strs[0];
int value2;
if (!int.TryParse(result2, out value2))
return input;
string uom = string.Empty;
if (result2Strs.Length > 1)
uom = "\r" + result2Strs[1];
Dictionary<char, char> ht = new Dictionary<char, char>();
ht.Add('+', '⁺');
ht.Add('-', '⁻');
ht.Add('0', '⁰');
ht.Add('1', '¹');
ht.Add('2', '²');
ht.Add('3', '³');
ht.Add('4', '⁴');
ht.Add('5', '⁵');
ht.Add('6', '⁶');
ht.Add('7', '⁷');
ht.Add('8', '⁸');
ht.Add('9', '⁹');
string result = strs[0];
result2 = value2.ToString();
bool isMinus = strs[1][0] == '-';
string minus = "";
if (isMinus)
minus = "⁻";
foreach (var kv in ht)
{
result2 = result2.Replace(kv.Key, kv.Value);
}
return $"{result}×10{minus}{result2}{uom}";
}
大致得思想就是通过一些特殊符号得替换来实现科学计数法。
今天的文章C#实现有效位数,科学计数法实现代码分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27889.html