草庐IT

numeric_traits_integer

全部标签

java - Long vs Integer,long vs int,什么时候使用?

有时我看到API使用long或Long或int或Integer,但我想不通如何做出决定?我应该什么时候选择? 最佳答案 Long是long的Object形式,Integer是int的对象形式.long使用64bits.int使用32位,因此最多只能保存±20亿的数字(-231到+231-1)。你应该使用long和int,除非你需要使用继承自Object的方法,例如hashcode。Java.util.collections方法通常使用盒装(Object-wrapped)版本,因为它们需要适用于任何Object和原语类型,如int或l

java - 将 BigDecimal 转换为 Integer

我有Hibernate方法,它返回一个BigDecimal。我有另一个API方法,我需要将该数字传递给它,但它接受Integer作为参数。我无法更改这两种方法的返回类型或变量类型。现在如何将BigDecimal转换为Integer并将其传递给第二个方法?有办法解决吗? 最佳答案 您可以调用myBigDecimal.intValueExact()(或只是intValue()),如果您丢失信息,它甚至会抛出异常。这会返回一个int,但自动装箱会处理这个问题。 关于java-将BigDecim

c++ - STL Character Traits 的重点是什么?

我注意到在我的SGISTL引用拷贝中,有一个关于CharacterTraits的页面,但我看不到它们是如何使用的?它们会替换string.h函数吗?std::string似乎没有使用它们,例如length()方法在std::string不使用字符特性length()方法。为什么会存在CharacterTraits并且它们是否曾在实践中使用过? 最佳答案 字符特征是流和字符串库的一个极其重要的组成部分,因为它们允许流/字符串类将存储哪些字符的逻辑与应该对这些字符执行的操作的逻辑分开。首先,默认的字符特征类,char_traits,在C

c++ integer->std::string 转换。简单的功能?

问题:我有一个整数;这个整数需要转换为STL::string类型。过去,我使用stringstream进行转换,这有点麻烦。我知道C方法是执行sprintf,但我更愿意执行类型安全的C++方法。有没有更好的方法来做到这一点?这是我过去使用的字符串流方法:std::stringintToString(inti){std::stringstreamss;std::strings;ss当然,这可以改写成这样:templatestd::stringt_to_string(Ti){std::stringstreamss;std::strings;ss但是,我认为这是一个相当“重量级”的实现。Za

ios - 在 32 位和 64 位架构上格式化 NS(U)Integer 时类型转换的替代方法?

对于64位版本的iOS,我们不能再使用%d和%u来格式化NSInteger和NSUInteger。因为对于64位,这些类型定义为long和unsignedlong而不是int和unsignedint。因此,如果您尝试使用%d格式化NSInteger,Xcode会抛出警告。Xcode对我们很好,它提供了这两种情况的替代品,它包括一个以l为前缀的格式说明符和一个类型转换为long。那么我们的代码基本上是这样的:NSLog(@"%ld",(long)i);NSLog(@"%lu",(unsignedlong)u);如果你问我,那是眼睛疼。几天前,有人在Twitter上提到了格式说明符%zd来

c++ - 可以将 std::numeric_limits<T> 专门用于用户定义的类数类吗?

std::numeric_limits的文档说它不应该专门用于非基本类型。类似数字的用户定义类型呢?如果我定义自己的类型T它表示一个数值并重载数字运算符,其信息由numeric_limits表示有道理——如果我专攻numeric_limits会有什么问题吗?适合那种类型? 最佳答案 简答:去吧,不会有坏事发生的。长答案:C++标准广泛保护::stdC++1117.6.4.2.1中的命名空间,但在第1段和第2段中特别允许您的情况:ThebehaviorofaC++programisundefinedifitaddsdeclaratio

c++ - 可以将 std::numeric_limits<T> 专门用于用户定义的类数类吗?

std::numeric_limits的文档说它不应该专门用于非基本类型。类似数字的用户定义类型呢?如果我定义自己的类型T它表示一个数值并重载数字运算符,其信息由numeric_limits表示有道理——如果我专攻numeric_limits会有什么问题吗?适合那种类型? 最佳答案 简答:去吧,不会有坏事发生的。长答案:C++标准广泛保护::stdC++1117.6.4.2.1中的命名空间,但在第1段和第2段中特别允许您的情况:ThebehaviorofaC++programisundefinedifitaddsdeclaratio

c++ - 在调用 std::numeric_limits<unsigned char> 成员之前,一元 "+"的目的是什么?

我看到了thisexampleincppreference'sdocumentationforstd::numeric_limits#include#includeintmain(){std::cout::lowest()::min()::max()::lowest()::min()::max()::lowest()::min()::max()::lowest()::min()::max()我不明白中的“+”运算符::lowest()我已经测试过了,用“-”替换它,这也有效。这样的“+”运算符有什么用? 最佳答案 输出运算符当通过c

java - ClassCastException : ApiVersionImpl cannot be cast to java. lang.Integer

我有android+gradle项目。当我尝试启动应用程序时出现以下异常:'ClassCastException:com.android.build.gradle.internal.model.ApiVersionImpl无法转换为java.lang.Integer:com.android.build.gradle.internal.model.ApiVersionImpl无法转换为java.lang.Integer'buildscript{repositories{mavenCentral()}dependencies{classpath'com.android.tools.buil

php - mysql时间戳转换/格式化通知: A non well formed numeric value encountered

在我的数据库中,我已将“已发布”行设置为时间戳,但在尝试对其进行转换/格式化时收到此通知:Notice:Anonwellformednumericvalueencountered代码:$posted=date('d/m/YH:i:s',$row['posted']);echo$posted;我做错了什么? 最佳答案 这意味着date()的第二个参数需要整数,所以先将$row['posted']转换为时间戳。试试$posted=date('d/m/YH:i:s',strtotime($row['posted']));