草庐IT

Double-free

全部标签

JAVA double精度丢失问题

double类型精度丢失问题:0.1*0.1使用计算器计算是0.01,代码里却是0.010000000000000002publicclassHelloWorld{publicstaticvoidmain(String[]args){doublenumber1=0.1; doublenumber2=0.1; doubleresult=number1*number2; System.out.println("使用double运算结果:"+result);}}为什么会这样呢?这就是精度丢失问题造成的。为什么会出现精度丢失?因为计算机只能识别0和1,即二进制,无论哪种编程语言,都需要翻译成二进制才能

java - 如何将 16 位 PCM 音频字节数组转换为 double 或 float 组?

我正在尝试对.3gpp音频文件执行快速傅里叶变换。该文件包含来自手机麦克风的44100kHz的5秒小录音。出于显而易见的原因,我能找到的每个JavaFFT算法都只接受double[]、浮点[]或复杂[]输入,但我正在以字节数组的形式读取音频文件,所以我有点对我从这里去哪里感到困惑。我唯一能找到的是上一个问题的答案:AndroidaudioFFTtoretrievespecificfrequencymagnitudeusingaudiorecord但我不确定这是否是正确的程序。任何有见识的人? 最佳答案 别无选择。您必须运行一个循环并

【AI人工智能】Phind:免费面向开发者的生成式 AI 搜索引擎 | FREE Generative AI search engine for developers

Phind 通过简单的解释和来自网络的相关代码片段来回答技术问题。 禅与计算机程序设计艺术: 与ChatGPT和newBing一样,Phind由大语言模型(LargeLanguageModel(LLM))驱动。体验后,个人感觉在技术方面的检索能力和质量上Phind比newBing和ChatGPT的体验要好得多。Phind也支持非开发人员相关问题回答,响应速度和质量也不错,关键不需要newBing的waitlist。官网地址:https://phind.com相对于另外一个AI搜索引擎 PerplexityAI,个人感觉Phind的体验更好。 目录简介

android - 为什么使用 float 而不是 double 不会提高 Android 性能?

由于所有智能手机(至少是我能找到规范的智能手机)都有32位处理器,我想在大量计算中使用单精度浮点值的性能会比double值好得多。然而,情况似乎并非如此。即使我避免类型转换,并尽可能使用FloatMath包,在比较基于float的方法和基于double的方法时,除了内存使用外,我几乎看不到任何性能改进。我目前正在开发一个相当大的计算密集型声音分析工具,它每秒进行数百万次乘法和加法运算。由于32位处理器上的double乘法需要几个时钟周期,而单精度需要1个时钟周期,我假设类型更改会很明显......但事实并非如此:-(对此有什么好的解释吗?是因为DalvikVM的工作方式,还是什么?

android - 如何使用 Android View 数据绑定(bind)格式化 double?

假设我有一个Earthquake类,它有一个字段publicfinaldoublemagnitude;,我有一个类似于这个的布局:...注意我必须使用"@{String.format(earthquake.magnitude)}"来使用这个字段,否则我会得到这个错误:Cannotfindthesetterforattribute'android:text'onandroid.widget.TextViewwithparametertypedouble.不幸的是,这会导致双重打印完全准确。如何设置显示的double值的格式? 最佳答案

Deep learning of free boundary and Stefan problems论文阅读复现

DeeplearningoffreeboundaryandStefanproblems论文阅读复现摘要1.一维一相Stefan问题1.1DirectStefanproblem1.2InverseTypeI1.3InverseTypeII2.一维二相Stefan问题2.1DirectStefanproblem2.2InverseTypeI2.3InverseTypeII3.二维一相Stefan问题参考摘要在这项工作中,作者提出了一个基于物理信息神经网络的多网络模型,来解决一类一般的正和逆自由边界问题,称为Stefan问题。具体地说,用两个深度神经网络来近似未知解以及任何移动边界。作者提供了三个案

c++ - double 到 unsigned int/char

我读了here,即:根据C99§6.3.1.4脚注50:Theremainderingoperationperformedwhenavalueofintegertypeisconvertedtounsignedtypeneednotbeperformedwhenavalueofrealfloatingtypeisconvertedtounsignedtype.Thus,therangeofportablerealfloatingvaluesis(−1,Utype_MAX+1).现在,我对以下之间的细微差别感兴趣(这次是针对C++03!):doubled1=257;doubled2=-2

c++ - 将多边形坐标从 Double 转换为 Long 以用于 Clipper 库

我有两个多边形,它们的顶点存储为Double坐标。我想找到这些多边形的交叉区域,所以我正在查看Clipperlibrary(C++版本)。问题是,Clipper仅适用于整数数学(它使用Long类型)。有没有一种方法可以用相同的比例因子安全地转换我的两个多边形,将它们的坐标转换为Longs,使用Clipper执行相交算法,并使用相同的比例缩小生成的相交多边形,然后将其转换回来到Double而不会损失太多精度?我不太清楚该怎么做。 最佳答案 您可以使用一个简单的乘数在两者之间进行转换:/*Usingpower-of-twobecause

c++ - 如何在不丢失精度的情况下将 float 转换为 double(均以 IEEE-754 表示形式存储)?

我的意思是,例如,我有以下以IEEE-754单精度编码的数字:"01000001101111101100110011001100"(approximately23.85indecimal)上面的二进制数是用文字串存储的。问题是,如何将这个字符串转换为IEEE-754double表示(有点像下面的,但值不一样),而不损失精度?"0100000000110111110110011001100110011001100110011001100110011010"相同的数字以IEEE-754double编码。我曾尝试使用以下算法先将第一个字符串转换回十进制数,但它会失去精度。numindecim

c++ - 如何以最高精度 (C++) 将 uint64_t 转换为介于 0 和 1 之间的 double / float ?

我正在编写一个基于无符号整数的图像类。我目前正在为8位和16位RGBA像素使用uint8_t和uint16_t缓冲区,要从16位转换为8位,我只需取16位值,除以std::numeric_limits::max()转换为double,然后乘以255。但是,如果我想为每个RGBA组件创建一个具有64位无符号整数的图像(我知道,它高得离谱),我将如何找到一个介于0和1之间的float/double来表示之间的距离0和最大uint64_t我的像素值是?我假设转换为double是行不通的,因为double通常是64位float,并且您无法在64位float中捕获所有64位无符号整数值。不转换为