/// <summary>///  科学计数法值转换成正常值/// </summary>/// <param name="value"></param>/// <returns></returns>public string ValueScientificNotationConvert(JToken value){if (value == null) return "";var s = value.ToString(Formatting.Indented).ToString();string num = String.Empty;// s = s.Trim();string[] arr = s.Split('E');int LastZeroCountInPart1 = 0;foreach (char ch in arr[0].Reverse()){if (ch == '0')LastZeroCountInPart1++;else{break;}}bool isPart1Double = double.TryParse(arr[0], out var part1);int decimalDigitCountInPart1 = arr[0].IndexOf('.') == -1 ? 0 : arr[0].Length - 1 - arr[0].IndexOf('.');string newPart2 = arr.ElementAtOrDefault(1);bool isPart2Int = int.TryParse(newPart2, out var part2);if (arr.Length == 1){if (isPart1Double)num = part1.ToString();}if (arr.Length == 2){if (part2 < 0 || part2 - decimalDigitCountInPart1 < 0){if (isPart1Double && isPart2Int)num = Decimal.Parse((part1 * Math.Pow(10, part2)).ToString(), System.Globalization.NumberStyles.Float).ToString(); // 此时Math.Pow(10, part2)并不会越界,故可使用Decimal.Parse从scientific num转换为real num
                }else if (part2 - decimalDigitCountInPart1 >= 0){num = part1.ToString().Replace(".", "") + new String('0', part2 - decimalDigitCountInPart1);  // 避免越界,此处使用字符串拼接代替Math.Pow(10, part2),拼接还可用StringBuilder的append方法
                }}return num + new String('0', LastZeroCountInPart1); // 此处拼接还可使用StringBuilder的append方法}

转载于:https://www.cnblogs.com/Jenny-1/p/11083933.html

c# 科学计数法值转换成正常值,返回字符串相关推荐

  1. 科学计数法如何转换成普通的计数方式??

    http://topic.csdn.net/u/20070716/15/23acde59-75ad-47c0-bc74-59e635427fcb.html 发表于:2007-07-16 15:13:3 ...

  2. C# 科学计数法的转换

    在进行金融类应用开发的时候,经常会遇到使用科学计数法来表示一个精度非常高的数值, 例如:1E-10 这种数值无法用来直接计算,所以我们需要进行类型的转换,话不多说直接上源码  private stri ...

  3. 普通数字到科学计数法的转换

    这个代码的功能是把给定的数用科学计数法的方式实现 代码来自于<算法笔记>P209 数以string类的形式给出,返回的也是string类,并以引用方式修改了指数e,一开始e=0,其中精度n ...

  4. 超长浮点数据到科学计数法的转换

    文本格式化工具类TextFormatUtil public class TextFormatUtil {private static DecimalFormat mDecimalFormat = ne ...

  5. python实现科学计数法时间转换

    直接看效果 0 1.560091e+12 1 1.560051e+12 2 1.560089e+12 3 1.560063e+12 4 1.560079e+12 5 1.560068e+12 6 1. ...

  6. 科学计数法转换成数字

    科学计数法,转化成数字 一,方法 String num="2.036E5"; if(num.indexOf("E")>0)                 ...

  7. python 数值型字符串实现四舍五入 decimal_Python将科学计数法数值转换为指定精度浮点数...

    Python将科学计数法数值转换为指定精度浮点数 In [20]:money = 1190000.0 In [21]: traded_maket_value = 13824000000 In [22] ...

  8. csv java 科学计数法_Java入门笔记1/0(输入与输出)

    0.输出: (0).System.out.println() 表示输出后换行 (1).System.out.print() 表示输出后不换行 1.格式化输出: (0).计算机有时输出的结果不一定被人很 ...

  9. PAT乙级 1024 科学计数法 (20 分)

    题目内容 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该 ...

最新文章

  1. GitHub开源的10个超棒后台管理面板
  2. 上万家物联网公司会被“政策死”吗
  3. arm开发板放张图片动起来_ARM裸机不能正确显示图片的问题
  4. SAPMM模块配置目录
  5. x9此计算机上没有hasp_为什么我在别人电脑上好装mastercam9,在自己电脑装不成功,它没有出现什么HASP驱动安装的提示,为什么...
  6. stl源码剖析_STL源码剖析 阅读笔记(二)allocator
  7. java的主函数在哪_打开一个别人的文件,一堆.java, 怎么知道main函数在哪里?
  8. Win10笔记本可以搜索到邻居WiFi却搜不到自家的??
  9. Python中append()与extend()的区别
  10. 【人工智能】深度学习自动构图研究报告
  11. iOS 并发编程之 Operation Queues
  12. 基于Java的中华文化传播系统(含数据库文档)
  13. VC编译连接选项详解
  14. ogg怎么转换成mp3格式?
  15. EI检索实例(相关主题、单位集体、个人)
  16. 苹果输入法微信换行及微信群接龙
  17. 高光谱解混与变化检测专题
  18. 全球及中国车险行业十四五渠道营销与竞争战略规划报告2022-2028年
  19. Windows系统如何部署Rabbit和启动Rabbit服务
  20. 成为以太坊开源项目EthereumJ的维护者

热门文章

  1. 1m带宽可以做mysql数据库吗_服务器的1M带宽够用吗?1M网速是多少?
  2. c语言中entern int x y,关于extern和int main()的结构有关问题
  3. IO流读取文件用户信息根据年龄排序后,写到文件
  4. define定义的是什么类型_DEFINE_PROFILE用法介绍(1)
  5. leetcode434. 字符串中的单词数
  6. leetcode415. 字符串相加
  7. Linux学习笔记(三)
  8. 为什么设计师应该学习编写代码
  9. 解决:Truncated incorrect DOUBLE value: xxxX-1‘
  10. Bootstrap 中: data-toggle 与 data-target 的作用