- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Arduino UNO 上执行算法,它需要包含一些大数字的常量表,有时,我会得到溢出值。这个数字就是这种情况:628331966747.0
好吧,这是一个大的,但它的类型是 float(32 位),其中最大值是 3.4028235e38。所以理论上它应该有效?
对此我能做些什么?你知道解决办法吗?
编辑:在 Arduino UNO 上,double 与浮点类型完全相同(32 位)
这是导致错误的代码:
float A;
void setup() {
A = 628331966747.0;
Serial.begin(9600);
}
void loop() {
Serial.println(A);
delay(1000);
}
它打印“ovf, ovf, ..., ovf”
最佳答案
常量本身没有任何问题(除了它相当乐观的有效数字),但问题在于 Arduino 库支持打印浮点值的实现。 Print::printFloat()
包含以下前提条件测试:
if (isnan(number)) return print("nan");
if (isinf(number)) return print("inf");
if (number > 4294967040.0) return print ("ovf"); // constant determined empirically
if (number <-4294967040.0) return print ("ovf"); // constant determined empirically
似乎可打印值的范围是有意限制的,大概是为了降低复杂性和代码大小。随后的代码揭示了原因:
// Extract the integer part of the number and print it
unsigned long int_part = (unsigned long)number;
double remainder = number - (double)int_part;
n += print(int_part);
有些简单的实现要求整数部分的绝对值本身是一个 32 位整数。
可能令人担忧的是“根据经验确定常数” 的评论,它暗示这些值是通过反复试验而不是对数学的理解得出的!人们不得不怀疑为什么这些值不是根据 INT_UMAX
定义的。
有一个建议的“修复”描述 here ,但它至少不会起作用,因为它将整数 abs()
函数应用于 double
参数 number
,它只有在整数部分小于限制性更强的 MAX_INT
。作者发布了一个 zip 文件的链接,其中包含一个看起来更有效的修复程序(至少有测试证据!)。
关于arduino-uno - Arduino UNO 上的常量太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42034906/
我按照说明操作 here用于设置 wpf 主机,但应用程序启动时从未加载我的代码。我还尝试让 WASM 调试工作但没有成功。也就是说,如果可能的话,我宁愿拥有一个 wpf 主机,因为我认为这将提供更快
我正在尝试在 Arduino UNO 上执行算法,它需要包含一些大数字的常量表,有时,我会得到溢出值。这个数字就是这种情况:628331966747.0 好吧,这是一个大的,但它的类型是 float(
当我运行 Wasm 应用程序头时,在应用程序 UI 出现之前,最初会出现 Uno 平台启动画面(带有白色背景)。有时,启动画面图像 (splashscreen.scale-200.png) 及其指定的
我正在尝试让 HTML 文件上传控件在 WASM 上运行。到目前为止,我已尝试执行以下操作: [HtmlElement("input")] public class FilePickerView :
我想使用 16MHz Arduino Uno (ATMEGA328P) 设置自定义频率 (12Hz) 和占空比 (20%)。 AVR 计算器产量: ICR1 = 20833 OCR1A = 4167
我想使用 16MHz Arduino Uno (ATMEGA328P) 设置自定义频率 (12Hz) 和占空比 (20%)。 AVR 计算器产量: ICR1 = 20833 OCR1A = 4167
我尝试使用以下方法,但它们在 Uno (Android) 中都显示为未实现。我能做什么? 是否有任何 Xamarin.Essentials 替代品? 或其他NuGet 包? 或者我应该在每个平台上使用
我有一个基于 un uno 平台的简单应用程序。在 Windows 上,我可以毫无问题地构建和运行它。但是在 VS for Mac 上,编译器对自动生成的 RemoteControl.g.cs 文件给
我有一个问题,我只是尝试添加新文本,然后对其应用 LibreOffice 样式。我想添加文本并使其遵循特定样式(“标题 1”、“标题 2”等)。 向文档添加文本确实有效,更改样式也有效,但最后的样式集
Closed. This question needs debugging details。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。 上个月关闭。 I
我正在尝试读取RFID标签号由视差 RFID 阅读器扫描并使用 Arduino 设备发送到计算机。我正在尝试使用RXTXCommDrive从串行端口读取数据,但问题是当Arduino连接到PC时,它连
作为我正在进行的项目的一部分,我收到了一个 arduino uno 和一些代码。我以前从未与他们合作过,所以这对我来说是一次全新的体验。 我正在使用他们网站上的 Arduino 应用程序,当我编译代码
这是我的页面 HTML 代码。我这里使用了JQuery。 ESP8266 LED 控制 tags below the ID attribute is the value sent to the ar
我得到了我的 Arduino Uno,昨天碰巧停止被计算机识别。电路板上的红色 LED 工作正常,所以这是一个好兆头,但是当我通过 USB 连接它时,它不会在下方通知我-某些设备已连接的屏幕右侧。同样
我正在尝试在 Uno 平台上将音频流和视频流合并到一个文件中,特别是对于 WebAssembly。 我已经知道正常的、仅限桌面的方法是调用 ffmpeg ,而且我还找到了 UWP here 的唯一 C
有谁知道是否有办法在 Uno-Platform 应用程序中嵌入 OpenGL View ?我需要它在 iOS、macOS、Android 和 UWP 上工作。我有很多 C#/Xamarin 代码我想重
我需要帮助,我正在使用 Arduino UNO 和 GPRS 扩展板,它由输出 12v 500mA 的适配器供电。 SIM 卡放置正确,我用 AT+CPIN? 命令检查了这一点,但是当我尝试用 AT+
我需要帮助,我正在使用 Arduino UNO 和 GPRS 扩展板,它由输出 12v 500mA 的适配器供电。 SIM 卡放置正确,我用 AT+CPIN? 命令检查了这一点,但是当我尝试用 AT+
我是一名尝试硬件的程序员 我正在尝试连接我在网上购买的 SIM900 扩展板。因此,我按照大量教程将 SIM 扩展板与 Arduino UNO 连接起来。 嗯,事情进展得不太顺利。 我在里面放了一个解
我一直在 ATMega328P 上试验 PWM 波形生成模式。我得到了一些奇怪的结果,我无法确定是我编写固件的方式有问题还是我解释 datasheet 的方式有问题。 . 这是我为模拟 analogW
我是一名优秀的程序员,十分优秀!