- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
d
是一个double
类型的数据,p
是指向它的指针。当它们都显式地分别转换为 int 时,它会为指针 p 的转换提供以下错误。:从 double*
转换为 int
会丢失精度
#include<iostream>
using namespace std;
int main()
{
int i,j;
double d=3.5;
double* p=&d;
i=(int)d;
j=(int)p; // this line gives the error
cout<<i<<" "<<j;
return 0;
}
我预计会出现错误“从 double*
到 int
的无效转换。为什么不是这样?
此外,如果对指针 p
进行数据 d 的转换,为什么没有给出“丢失精度”错误?
最佳答案
I expected the error there to be "invalid conversion from 'double*' to'int'". Why is it not so?
我认为这只是一种依赖于编译器的处理此错误的方法。在 clang 上,我得到了类似的东西,也许信息量更大:
error: cast from pointer to smaller type 'int' loses information
Also, why didn't the cast for data d give the "loses precision" errorif it does so for the pointer p?
从 float 或 double 到 int 的转换属于标准转换,不会出错并且有时很有用。这不应该引发错误,更多信息 here ,
A prvalue of floating-point type can beconverted to a prvalue of any integer type. The fractional part istruncated, that is, the fractional part is discarded. If the valuecannot fit into the destination type, the behavior is undefined (evenwhen the destination type is unsigned, modulo arithmetic does notapply). If the destination type is bool, this is a boolean conversion(see below).
A prvalue of integer or unscoped enumeration type can beconverted to a prvalue of any floating-point type. If the value cannotbe represented correctly, it is implementation defined whether theclosest higher or the closest lower representable value will beselected, although if IEEE arithmetic is supported, rounding defaultsto nearest. If the value cannot fit into the destination type, thebehavior is undefined. If the source type is bool, the value false isconverted to zero, and the value true is converted to one.
关于c++ - 从 double* 转换为 int 会失去精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56497318/
我在我的项目(Ubuntu 18.04.2 LTS)中使用了 celery 4.4.0 版本。当我提出异常('功能中的功能太少无法分类')时, celery 项目失去了 worker ,我得到了这样的
我在这样的更新面板中有一个 GridView :
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 这个问题似乎不是关于 a specific programming problem,
当我尝试使用 jquery 的 html() 将 HTML 附加到另一个元素时。我失去了 ng-click 的能力。这是我的代码的粗略描述。例如我有一个名为 testController 的 Cont
我正在将 python 连接到 mySqL 数据库,并从 android 发送两个 Double 值以存储在 Mysql 中,然后我收到此错误 enter code here Exception i
无法理解为什么这个简单的事情没有反应性。看起来我错过了一些 Vue 的基础。 {{connection_status}} export default {
我不明白出了什么问题,在我的设备上应用程序运行良好,但有时在日志中(应用程序用户、 session 、崩溃......通过某些服务跟踪)我看到应用程序崩溃(NullPointerException),
我正在处理一个我有点困惑的问题。问题是假设您是二战期间英国空军的一名将军。您还剩下 100 架飞机来保卫英国。在您执行的每个任务中,每架飞机都有 50% 的几率被德国高射炮击落,因此每次执行任务您都会
我相信我的问题与以下问题非常相似 Spring security 'remember me' cookie not avaiable in first request . 基本上,我有一组用于公司内部
似乎 Bootstrap 下拉按钮在单击后仍保持焦点。 我的用例与此不兼容, 用户应该在单击按钮后按“SPACE”键,为了触发与按钮无关的东西。 问题是按钮保持焦点状态,因此按空格键 激活按钮。 我希
我有一个 MKMapView,其中有很多从解析器 xml 定义的注释引脚;那是我的代码: -(IBAction)LoadAnnotation:(id)sender { RXML element
我有一个 HTML 表格,用户可以在其中输入他的待机开始时间和待机结束时间,该时间计算总时数,并基于此计算获得的补偿时数。这一切都有效。 现在,它所做的是,每当用户输入开始和结束时间时,用户必须将焦点
Windows 系统更新后,Eclipse 不再了解 Android 的任何信息...我如何恢复对 Android 的支持?我尝试重新安装 SDK,但没有成功... 太奇怪了。我注意到项目模板丢失了,
我正在发送 SOAP 请求来更新某些实体。当我创建(而不是更新)几乎相同的东西时,一切正常。我跟踪了客户端和传输的日志记录,最后它给了我一个线索。它看起来像这样: DEBUG:suds.client:
这个问题在这里已经有了答案: TypeError: Cannot read property 'setState' of undefined (3 个答案) How to access the co
我使用 PostgreSQL 和 repmgrd 创建了一个 Docker 镜像,所有这些镜像都是使用 supervisor 启动的。 我现在的问题是,当它启动时,由 supervisor 生成的 r
新的 iOS 开发者为 iPhone 编写第一个委托(delegate)应用程序。 模态调用的父 View Controller 有六个 subview Controller ,它们使用父 View
我目前正在 MVC4 中创建一些用户配置文件编辑表单,并且为了测试,我将 UserId 属性呈现为表单上的只读文本框,如下所示: @Html.LabelFor(model => model.
我是一名优秀的程序员,十分优秀!