标签: floating-point-precision

2
推荐指数
1
解决办法
212
查看次数

如何提高代码的精度

如何提高以下精度(精度)?

struct Degree_Minutes { signed int degrees; signed int minutes; double seconds; };
Degree_Minutes geo_dec_to_deg (double dec)
{
    Degree_Minutes degrees_minutes;
    signed int degrees, minutes;
    double remainder, temp, seconds;

    remainder = fmod(dec, 1);
    degrees_minutes.degrees = dec - remainder;
    temp = remainder*60;
    remainder = fmod(temp,1);
    degrees_minutes.minutes = temp-remainder;
    degrees_minutes.seconds = remainder*60;

    return degrees_minutes;
}

    double geo_deg_to_dec (Degree_Minutes degrees)
{
    double decimal = degrees.degrees + (degrees.minutes/60) + (degrees.seconds/60);
    return decimal;
}

int main(int argc, char **argv)
{
    Degree_Minutes deg;
    double decimal = 38.898556; …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point precision floating-accuracy floating-point-precision

2
推荐指数
1
解决办法
380
查看次数

Python中的浮点精度

我在python中编写了这个函数:

import math

def radical(a, b, k): 
    return (1-((a**2-b**2)/a**2)*(math.sin(math.pi*(2*k-1)/180))**2)**.5

def f(a, b): 
 sigma = 0 
 for k in range(1,180/4):
    sigma = sigma + radical(a, b, k)
 return 8*a*math.sin(math.pi/180)*sigma

print f(25.,35.)
Run Code Online (Sandbox Code Playgroud)

当我在Wolphramapha和Maple中计算这个函数时,我会得到189.797但是使用python 我会得到184.91089913 我的程序有什么问题?

python math floating-point precision floating-point-precision

2
推荐指数
1
解决办法
1342
查看次数

PHP - 获取浮点变量内部值

我正在尝试在PHP中进行浮点比较时建立我需要的delta.我想仔细看看我的变量,看看差异.

我有2个计算变量,$ a,$ b.

$a = some_function();

$b = some_other_function();
Run Code Online (Sandbox Code Playgroud)

如何查看PHP使用的确切数字?

我想将它们与这个公式进行比较,我需要指定delta:

$delta = 0.00001;
if (abs($a-$b) < $delta) {
  echo "identical";
}
Run Code Online (Sandbox Code Playgroud)

var_dump($ a,$ b)返回1.6215; 1.6215.但我知道他们并不完全相同,因为

var_dump($a === $b);
Run Code Online (Sandbox Code Playgroud)

评估为假;

为什么不var_dump()打印内部值?

php floating-point-precision

2
推荐指数
1
解决办法
3573
查看次数

将值为0.0f的浮点数转换为布尔值是否安全?

我知道由于精度错误,float应检查一个varibale,使其等于一个总是带有一定容差的值.但是,如果我手动将float变量设置为是0.0f什么情况呢?

例如,有一个返回距离的函数.

float distance()
{
    float value;
    if(/* ... */)
    {
        // ...
        return value;
    }
    else return 0.0f;
}
Run Code Online (Sandbox Code Playgroud)

我可以安全地将结果转换为bool吗?

if(distance())
{
   // ...
}
Run Code Online (Sandbox Code Playgroud)

c++ floating-point casting boolean floating-point-precision

2
推荐指数
1
解决办法
1180
查看次数

双重的准确性导致悲伤

我有一个ascii"15605632.68128593",我希望将其转换为双倍而不会失去准确性 -

 so 
 double d;
 d=(double)atof("15605632.68128593");
 printf("%f",d);

 printed result is 15605632.681286
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

谢谢 - !

c std floating-point-precision

2
推荐指数
2
解决办法
9944
查看次数

python的温度转换

我正在上免费的在线Python教程,它要我:

创建一个温度转换器,将华氏温度值转换为摄氏温度,反之亦然,使用以下两个公式,将华氏温度f与摄氏温度c相关联:

    f = c *  9/5 + 32
    c = (f -32)* 5/9 
Run Code Online (Sandbox Code Playgroud)

输入将是一个字符串,由一个浮点数字组成,紧接着是字母F或者C,例如"13.2C".我需要转换为其他温度刻度并以相同的格式打印转换后的值.例如,如果输入是"8F",那么输出应该是(大约)"-13.333C",如果输入"12.5C"则输出应该是"54.5F".

我的答案总是稍微偏离.例如,我得到-16.444444444444446C正确的输出-16.394444444444442C.我如何使用浮动有问题吗?我的代码如下:

def celsiusCon(farenheit):
   return (farenheit - 32)*(5/9)
def farenheitCon(celsius):
   return ((celsius*(9/5)) + 32)

inputStr = input()
inputDig = float(inputStr[0:-2])
if inputStr[-1] == 'C':
   celsius = inputDig
   print(farenheitCon(celsius),'F',sep ='')
if inputStr[-1] == 'F':
   farenheit = inputDig
   print(celsiusCon(farenheit),'C', sep='')
Run Code Online (Sandbox Code Playgroud)

python decimal python-3.x floating-point-precision

2
推荐指数
1
解决办法
1万
查看次数

用C++完全精确显示浮点数?

我已经阅读了几个关于用C++显示浮点数的主题,我找不到令人满意的答案.

我的问题是: 如何以科学的格式(尾数/指数)显示C++中浮点数的所有有效数字?

问题是所有数字在基数10中没有相同的有效位数.

例如,a double具有15到17个有效十进制数字精度,但std::numeric_limits<double>::digits10返回15,因此,对于某些数字,我将丢失2个额外十进制数字的精度.

c++ floating-point iostream iomanip floating-point-precision

2
推荐指数
1
解决办法
1720
查看次数

将浮点数从1减小到0,以0.01为增量递减

正如标题所述,我想从1开始并逐渐减少0.01到零.

问题是,我正在使用花车而且我不断获得诸如此类的价值观0.5000000001.

c++ floating-point floating-point-precision

2
推荐指数
1
解决办法
664
查看次数

如何用JS只获取长浮点精度数的整数部分?

我知道有

  • Math.floor
  • parseInt

但关于这种情况:

Math.floor(1.99999999999999999999999999)
Run Code Online (Sandbox Code Playgroud)

返回2,我怎么才能得到它的整数部分,等于1?

javascript floating-point-precision

2
推荐指数
1
解决办法
392
查看次数