有什么区别
.3+.3+.3+.1 == 1
Run Code Online (Sandbox Code Playgroud)
返回false,而
.3+.3+.1+.3 == 1
Run Code Online (Sandbox Code Playgroud)
返回true?这也适用于Python.
如何提高以下精度(精度)?
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
我在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
我正在尝试在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()打印内部值?
我知道由于精度错误,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) 我有一个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)
有任何想法吗 ?
谢谢 - !
我正在上免费的在线Python教程,它要我:
创建一个温度转换器,将华氏温度值转换为摄氏温度,反之亦然,使用以下两个公式,将华氏温度f与摄氏温度c相关联:
Run Code Online (Sandbox Code Playgroud)f = c * 9/5 + 32 c = (f -32)* 5/9输入将是一个字符串,由一个浮点数字组成,紧接着是字母
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) 我已经阅读了几个关于用C++显示浮点数的主题,我找不到令人满意的答案.
我的问题是: 如何以科学的格式(尾数/指数)显示C++中浮点数的所有有效数字?
问题是所有数字在基数10中没有相同的有效位数.
例如,a double具有15到17个有效十进制数字精度,但std::numeric_limits<double>::digits10返回15,因此,对于某些数字,我将丢失2个额外十进制数字的精度.
c++ floating-point iostream iomanip floating-point-precision
正如标题所述,我想从1开始并逐渐减少0.01到零.
问题是,我正在使用花车而且我不断获得诸如此类的价值观0.5000000001.
我知道有
Math.floorparseInt但关于这种情况:
Math.floor(1.99999999999999999999999999)
Run Code Online (Sandbox Code Playgroud)
返回2,我怎么才能得到它的整数部分,等于1?