问题标签 [numeric-conversion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 C++ 中类型感知字符串到数字的转换
让我们假设这个世界上的所有数字都是正整数,它们可以用 uintX_t C++ 类型表示。
让我们考虑下一个将 std::string 转换为数字的很棒的代码:
如您所见,此函数中有多个错误,但我对一个特定的错误感兴趣:如何检测我的类型何时不足以包含该值(例如第二次转换调用)并在制作result = result * 10 + *it - '0';
. 我想知道该操作是否会T
在进行之前超过最大值。这可能吗?
编辑:请检查是否有符号整数溢出在 C++ 中仍然是未定义的行为?有关 C++ 中算术运算的 UB 的更多信息。我想避免result = result * 10 + *it - '0';
在结果溢出时执行该行。在答案中,该行仍在执行...
EDIT2:我在这里找到了答案:如何检测整数溢出?
EDIT3:接受的答案适用于签名类型。对于无符号类型 Cheers 和 hth。- 阿尔夫的答案是正确的。
compiler-errors - 如何将 UInt64 转换为 Int64?
此函数调用中的第二个参数:
导致编译器错误:
斯威夫特参考:
c# - 通过强制转换为 uint 而不是检查负值来执行范围检查是否更有效?
我在 .NET 的List 源代码中偶然发现了这段代码:
显然这比(?)更有效if (index < 0 || index >= _size)
我很好奇这个把戏背后的原理。单个分支指令真的比两次转换更昂贵uint
吗?或者是否有其他一些优化可以使这段代码比额外的数字比较更快?
为了解决房间里的大象问题:是的,这是微优化,不,我不打算在我的代码中到处使用它——我只是好奇;)
c++ - C++ void 反向函数
我们正在将基数 10 转换为不同基数 (B) 的数字。我在使用 void reverse 函数时遇到问题,它不会颠倒数字的顺序。
bash - 在bash中将因子转换为数字
在bash中将因子向量(并非所有级别都是唯一的)转换为数字向量的最有效方法是什么?数值向量中的值无关紧要,只要每个值代表因子的唯一级别。
为了说明,这将是 R 等价于我想在 bash 中做的事情:
数字<-seq_along(级别(因子))[因子]
IE:
因素
AV1019A
ABG1787
AV1019A
B77hhA
B77hhA
数字
1
2
1
3
3
非常感谢。
c - 为什么 0 < -0x80000000?
我有一个简单的程序:
条件if(bal < INT32_MIN )
始终为真。这怎么可能?
如果我将宏更改为:
谁能指出这个问题?
ios - swift 2.0 NSDecimalNumber 可能的差异转换为长
我无法对此做出正面或反面。我正在使用 NSDecimalNumber 截断字符串中的小数部分。这在大多数情况下都有效,但显然不适用于无限小数(或太多)。这是一个例子:
第一行打印 49,第二行打印 -5,最后一行打印 0。我知道我可以使用舍入函数来做同样的事情,这就是我可能会使用的,但这看起来不奇怪吗?我知道这不仅仅是将浮点位模式转换为长整数,否则结果会完全不同。
android - 如何将 TextView 的值转换为整数
我正在设计一个基本的 BMI 计算器并且我的计算器正在工作,但是我需要将计算得到的答案从一个双精度的 TextView 转换为一个整数,以使我能够根据计算得到的答案使用 <> 运算符进行正确的陈述。
如何将 TextView 中的答案转换为整数?
xslt - XSLT 将数字作为字符串进行比较
背景
我最近惊讶地发现 XSL 能够智能地处理数字。即知道在执行比较时将文本中的数字视为数字(即它理解7 < 10
而不是思考'10' < '7'
)。就我而言,这就是我想要的;只是不是我所期望的。
出于好奇,然后我尝试强制 XSLT 将数字作为字符串进行比较(即通过使用该string()
函数,但没有运气。
问题
是否可以让 XSLT 将数字作为字符串进行比较?例如是'10' < '7'
吗?
例子
源 XML:
XSLT:
预期输出:
实际输出:
c++ - C++ 中数字类型之间转换的最佳实践
在不同数字类型之间进行转换的最佳做法是什么?Types float
, double
,int
是我在 C++ 中使用最多的类型。
f
where is a float
and n
is a double
or an选项示例int
:
我通常写作static_cast<T>(...)
,但想知道 C++ 开发社区内是否有任何共识,是否有首选方式。
我很欣赏这可能最终成为一个基于意见的问题,并且可能没有“标准”方式,在这种情况下,请让我知道没有标准方式,所以至少我知道:-)
我知道这个问题通常与铸造有关,但是,我对数字特别感兴趣,以及在数字类型的方法中是否有特定的最佳实践。