我想将3.50存储到mysql表中.我有一个存储它的浮动,但它存储为3.5,而不是3.50.如何才能得到尾随零?
我正在寻找一个免费的C++定点库(主要用于嵌入式设备,不用于任意精度数学).基本上,要求是:
有什么建议?
我想知道这里是否有人知道c#中定点数学的任何好资源?我见过这样的事情(http://2ddev.72dpiarmy.com/viewtopic.php?id=156)和这个(定点数学的最佳方法是什么?),以及关于是否十进制的一些讨论实际上是固定点或实际浮点(更新:响应者已经确认它肯定是浮点数),但是我还没有看到一个可靠的C#库来计算余弦和正弦.
我的需求很简单 - 我需要基本的操作符,加上余弦,正弦,arctan2,PI ...我认为这就是它.也许sqrt.我正在编写一个2D RTS游戏,我已经在很大程度上工作了,但是使用浮点数学(双精度)时的单位运动在多台机器上随着时间的推移(10-30分钟)有很小的不准确性,从而导致了desyncs.目前这只是在32位操作系统和64位操作系统之间,所有32位机器似乎保持同步没有问题,这使我认为这是一个浮点问题.
我从一开始就意识到这是一个可能的问题,所以尽可能地限制了我对非整数位置数学的使用,但是为了在不同的速度下平滑对角线移动,我正在以弧度计算点之间的角度,然后用sin和cos得到运动的x和y分量.这是主要问题.我还对线段交叉点,线圆交叉点,圆矩交点等进行了一些计算,这些计算也可能需要从浮点移动到定点以避免跨机器问题.
如果在Java或VB或其他类似语言中有开源的话,我可能会将代码转换为我的用途.我的主要优先考虑的是准确性,尽管我希望尽可能减少速度损失而不是现在的性能.这整个定点数学对我来说是非常新的,我很惊讶谷歌上的实用信息很少 - 大多数东西似乎是理论或密集的C++头文件.
你可以做的任何事情都指向我正确的方向非常感谢; 如果我可以使这个工作,我计划开源我放在一起的数学函数,以便有其他C#程序员的资源.
更新:我绝对可以使余弦/正弦查找表适用于我的目的,但我认为这不适用于arctan2,因为我需要生成一个包含大约64,000x64,000个条目(yikes)的表.如果您知道有关计算arctan2等事物的有效方法的任何程序性解释,那将是非常棒的.我的数学背景还可以,但是高级公式和传统的数学符号对我来说很难翻译成代码.
我需要为没有FPU的Nintendo DS加速程序,所以我需要将浮点数学(模拟和慢速)更改为定点.
我是如何开始的,我将浮点数更改为整数,每当我需要转换它们时,我使用x >> 8将定点变量x转换为实际数字,将x << 8转换为定点.很快我发现无法跟踪需要转换的内容,我也意识到很难改变数字的精确度(在这种情况下为8).
我的问题是,我应该如何让这更容易,更快?我应该制作一个FixedPoint类,或者只是一个FixedPoint8 typedef或带有一些函数/宏的结构来转换它们,还是别的什么?我应该在变量名称中添加一些内容来显示它的定点吗?
我知道这是一个非常愚蠢的问题,但我不知道如何在bash中这样做:
20 / 30 * 100
Run Code Online (Sandbox Code Playgroud)
它应该是,66.67但expr说0,因为它不支持浮动.Linux中的哪个命令可以替换expr并执行此等式?
我正在尝试创建一个高精度存储股票价格的应用程序.目前我正在使用双倍这样做.为了节省内存,我可以使用任何其他数据类型吗?我知道这与定点运算有关,但我无法弄明白.
对于强烈的数字运算,我正在考虑使用固定点而不是浮点数.当然,固定点类型的大小,它将运行在什么CPU上,如果我可以使用(对于英特尔)MMX或SSE或任何新的东西出现的问题...
我想知道这些日子浮点运行速度是否比以往任何时候都快,是否值得考虑固定点?是否有一般的经验法则,我们可以说它的重要性超过百分之几?35,000英尺数值性能的概述是什么?(顺便说一句,我假设大多数计算机都有通用CPU,而不是DSP或专用嵌入式系统.)
floating-point optimization performance numerical fixed-point
在C++中,将任何浮点值(浮点数)转换为固定点(int,16:16或24:8)的通用方法是什么?
编辑:为了澄清,定点值有两个部分:整数部分和小数部分.整数部分可以用有符号或无符号整数数据类型表示.小数部分由无符号数据整数数据类型表示.
为了清楚起见,让我们用钱来比喻.小数部分可能代表美分 - 美元的一小部分.'cents'数据类型的范围是0到99.如果将8位无符号整数用于定点数学运算,则小数部分将被分成256个可分的部分.
我希望能够解决问题.
我有一个固定点类(10.22),我需要一个pow,一个sqrt,一个exp和一个日志函数.
唉,我不知道从哪里开始.任何人都可以提供一些有用的文章的链接,或者,还没有给我提供一些代码?
我认为,一旦我有了exp函数,那么实现pow和sqrt变得相对容易.
pow(x,y)=> exp(y*log(x))sqrt(x)=> pow(x,0.5)
它只是那些我发现很难的exp和日志函数(好像我记得我的一些日志规则,我记不起其他的很多了).
据推测,顺便说一句,对于sqrt和pow也会有一个更快的方法,所以即使只是说使用上面概述的方法:)前面的任何指针都会受到赞赏:)
请注意:这是跨平台和纯C/C++代码,所以我不能使用任何汇编程序优化.
我正在寻找用于财务数据的定点标准,你知道任何值得尝试的吗?您对手工制作的定点课程的表现有什么经验吗?
fixed-point ×10
c++ ×5
math ×3
c ×2
performance ×2
bash ×1
c# ×1
currency ×1
exp ×1
logarithm ×1
mysql ×1
numerical ×1
optimization ×1
rounding ×1