我正在用 C(在 Linux 下)编写一个处理价格的应用程序。程序以整数对 (m, e) 的形式接收报价,因此结果价格只是 'm * 10^e'。
我希望能够通过算术运算来操纵价格,并使用类似“ printf ”的函数来格式化输出。我必须非常快地做到这一点。
在 C 中处理小数的最快方法是什么?我读过gcc 中的 Decimal Floats,但它们缺乏 libc 支持使它们无法以标准方式使用。谢谢你。
我正在用 C(在 Linux 下)编写一个处理价格的应用程序。程序以整数对 (m, e) 的形式接收报价,因此结果价格只是 'm * 10^e'。
我希望能够通过算术运算来操纵价格,并使用类似“ printf ”的函数来格式化输出。我必须非常快地做到这一点。
在 C 中处理小数的最快方法是什么?我读过gcc 中的 Decimal Floats,但它们缺乏 libc 支持使它们无法以标准方式使用。谢谢你。
You can of course use a library such as GMP, it supports arbitrary floating-point precision so it should be able to deal with your data.
If your prices are always at the most to 2 decimal places then you can just use integers to represent the number of cents. printf is also simple with
printf("%d.%02d", price/100, price%100 );