我想转换指数编号5.52794e + 15。如何将指数格式转换为c中的十进制格式
0
A
回答
2
它不适合在int
,但long long
会做:
long long x = 5.52794e+15;
2
替代:你想打印它作为一个整数。
double d = 5.52794e+15;
printf("%15.0lf\n",d);
给出:
5527940000000000
-1
长长×= 5.52794e + 15; 其中指数“15”必须是整数,系数5.52794是任何实数,甚至可以是整数。 尾数的最大值刚好超过32,000,000任何高于此的值都将被截断。 如果你有一个运行总数,并且以小的值加入并保持精确的总数,这就变得很重要。 - 例如,您添加的值不是整数时的用电量。
+0
虽然我没有给你降低成绩,但我并不感到惊讶你害怕,我不明白你在哪里得到尾数限制在3200万的想法;它对于一个4字节的浮点值是有意义的,但5.52794e + 15是双倍的,而且你通常会得到比32M评论暗示的更多的精度数字。关于保持总计值是双重担心的想法,但与这个特定上下文无关。 – 2009-12-22 20:29:35
1
除了使用long long,您还可以:
使用压缩的十进制库。
您可以在标准int或long中使用对数(或几何等)缩放。
使用int结构,表示有效数和指数,并手动(或使用一个好的库)进行浮点数学运算。
我已经使用了所有三种方法,它们都有其起伏。 Packed Decimal最慢也最准确。对数缩放是迄今为止最快和最容易实现的,并且最不准确。通过整数重现浮点数在性能之间,精确度与“实际”浮点数基本相同,最难实现。
所有3个比使用浮点硬件慢 - 假设你的硬件有浮点!
相关问题
- 1. 将十六进制数转换为十进制格式
- 2. 将大时间格式转换为Excel中的十进制数
- 3. 如何将C++数字格式转换为C#数字格式?
- 4. 将整数十六进制格式转换为字符串
- 5. 十进制格式在C#
- 6. c#textbox十进制格式
- 7. 将格式化的mac地址转换为十六进制值
- 8. 在XSLT中将指数格式转换为数字格式
- 9. C#:将字符串格式的UInt16转换为整数(十进制)
- 10. 将十进制转换为IEEE-754格式
- 11. 将MysQl时间转换为十进制格式
- 12. 使用javascript将十进制时间转换为hh:mm格式
- 13. 将货币转换为十进制格式以继续添加
- 14. 将双精度转换为十进制格式?
- 15. 如何在Python中将科学数字格式化为十进制格式?
- 16. 转换十进制为十六进制的嵌入式C
- 17. 如何将我的十进制线程ID转换为十六进制并使其以十六进制格式显示在log4net转换模式中?
- 18. Android十进制格式化,如何根据不同的指数值进行十进制格式化?
- 19. 数字十进制格式
- 20. 如何转换为十进制格式的GridView单元格与DataFormatString =“{0:#,###,## 0.00}”
- 21. C++十六进制数字格式
- 22. 在Microsoft Excel Visual Basic中将DMS格式转换为十进制的函数
- 23. 如何将C#中的大二进制字符串转换为十六进制字符串格式?
- 24. 将字符串转换成ASCII格式,然后以十六进制格式
- 25. 数据格式为十进制值
- 26. 如何在iOS中将图像转换为二进制格式?
- 27. 如何将C风格的printf格式转换为C#字符串格式?
- 28. 将Python十进制对象格式化为指定的精度
- 29. 如何将时间戳从十六进制格式转换为EPOCH时间戳?
- 30. 如何将字符串格式的时间转换为c#中的十进制数?
我将它转换为“int no。”,没有发生任何有趣的事情。 :-( – 2009-12-22 16:39:42
换句话说,请提出一个问题,并提出一些有意义的问题,同时告诉我们你想做什么以及为什么。 – 2009-12-22 16:40:15